精品理论电影在线_日韩视频一区二区_一本色道精品久久一区二区三区_香蕉综合视频

C技巧:如何使當前程序的對象進入腳本

發布時間:2011-09-16 共1頁

  由于實際需要做一個VC程序實現關閉和重起計算機的小東西,剛剛做完,發出來給家一起研究下.
  //Mfc編寫activex控件時取得控件容器句柄
  //如果是取容器接口指針
  LPOLECONTAINER lpContainer;
  HRESULT hr = m_pClientSite->GetContainer(&lpContainer);
  關閉計算機
  OSVERSIONINFO OsVersionInfo; //包含操作系統版本信息的數據結構
  OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  GetVersionEx(&OsVersionInfo); //獲取操作系統版本信息
  if(OsVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
  {
  //Windows98,調用ExitWindowsEx()函數重新啟動計算機
  DWORD dwReserved;
  ExitWindowsEx(EWX_REBOOT,dwReserved); //可以改變第一個參數,實現注銷用戶、
  //關機、關閉電源等操作
  // 退出前的一些處理程序
  }
  重啟計算機
  typedef int (CALLBACK *SHUTDOWNDLG)(int); //顯示關機對話框函數的指針
  HINSTANCE hInst = LoadLibrary("shell32.dll"); //裝入shell32.dll
  SHUTDOWNDLG ShutDownDialog; //指向shell32.dll庫中顯示關機對話框函數的指針
  if(hInst != NULL)
  {
  //獲得函數的地址并調用之
  ShutDownDialog = (SHUTDOWNDLG)GetProcAddress(hInst,(LPSTR)60);
  (*ShutDownDialog)(0);
  }
  //如果是取窗口句柄
  HWND m_hWndParent;
  IOleInPlaceSite *pOleInPlaceSite = NULL;
  if (NOERROR==m_pClientSite->QueryInterface(IID_IOleInPlaceSite, (LPVOID *)&pOleInPlaceSite))
  {
  pOleInPlaceSite->GetWindow((HWND *)&m_hWndParent);
  pOleInPlaceSite->Release();
  }

百分百考試網 考試寶典

立即免費試用