以下沒有例舉出所有Shell Object的方法,要獲得更詳細內容請參考MSDN的<Shell Object>
IShellDispatch : public IDispatch {// 參數要指定控制台程式的名字,所有程式都以.cpl以尾碼HRESULT ControlPanelItem(BSTR szDir); // Causes the Start Menu to refresh its contentsHRESULT RefreshMenu( void); // 尋找電腦HRESULT FindComputer( void); // 彈出尋找檔案對話方塊HRESULT FindFiles( void) // 彈出系統協助HRESULT Help(); // 彈出工作列屬性對話方塊HRESULT TrayProperties( void); // 彈出設定系統時間對話方塊HRESULT SetTime( void) HRESULT EjectPC()// 掛起系統HRESULT Suspend() // 關機HRESULT ShutdownWindows() // 水平平鋪HRESULT TileHorizontally() // 垂直平鋪HRESULT TileVertically() // 層疊視窗HRESULT CascadeWindows() // 彈出運行對話方塊HRESULT FileRun() // 恢複視窗最小化HRESULT UndoMinimizeALL() // 所有視窗最小化HRESULT MinimizeAll() // CComVariant vDir(L"c:/"); 注意:根目錄末尾要加/par // psl->Explore(vDir); 也可以直接指定檔案的路徑// 參數也可以是枚舉ShellSpecialFolderConstants的值(該枚舉將一系統目錄定義成常量)HRESULT Explore(VARIANT vDir) // 與Explorer基本類似,但可以開啟網頁、目錄和檔案,感覺比Explorer好用HRESULT Open(VARIANT vDir) // 建立並返回一個ShellWindow對象指標HRESULT Windows( /* [retval][out] */ IDispatch __RPC_FAR *__RPC_FAR *ppid)}
一個簡單的使用例子:用Shell COM對象彈出運行對話方塊CoInitialize(NULL);IShellDispatch* psl;HRESULT hres = CoCreateInstance(CLSID_Shell, NULL,CLSCTX_INPROC_SERVER, IID_IShellDispatch, (LPVOID*) &psl);if(SUCCEEDED(hres)){ psl->FileRun() psl->Release();}CoUninitialize();