• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            旅途

            如果想飛得高,就該把地平線忘掉

            Internet Explorer編程簡述(三)

            關于Internet Explorer的收藏夾,比較常見的兩個問題就是調用“整理收藏夾”對話框和“添加到收藏夾”對話框。調用的方法有多種,但其中還是有些值得討論的地方。

              關鍵字:添加到收藏夾,整理收藏夾,DoAddToFavDlg, DoOrganizeFavDlg

               1、整理收藏夾

              調用“整理收藏夾”對話框(如下),基本上來說都用的是同一個方法,即調用“shdocvw.dll”中的“DoOrganizeFavDlg”函數,把父窗口句柄和收藏夾路徑作為參數傳入即可。


             

               2、代碼

              代碼實例如下所示,值得注意的是對“shdocvw.dll”的處理,為避免重復調用,應該先檢查其是否已經在內存中。


              void CMyHtmlView::OnFavOrganizefav()
              {
              typedef UINT (CALLBACK* LPFNORGFAV)(HWND, LPTSTR);

              bool bResult = false;

              HMODULE hMod = ::GetModuleHandle( _T("shdocvw.dll") );

              if (hMod == NULL)//如果"shdocvw.dll"尚未載入則載入之
              {
              hMod = ::LoadLibrary( _T("shdocvw.dll") );

              if (hMod == NULL)
              {



              MessageBox( _T("The dynamic link library ShDocVw.DLL cannot be found."),
              _T("Error"), MB_OK | MB_ICONSTOP );
              return;
              }
              LPFNORGFAV lpfnDoOrganizeFavDlg = (LPFNORGFAV)
              ::GetProcAddress( hMod, "DoOrganizeFavDlg" );

              if (lpfnDoOrganizeFavDlg == NULL)
              {
              MessageBox( _T("The entry point DoOrganizeFavDlg cannot be found\n")
              _T("in the dynamic link library ShDocVw.DLL."),
              _T("Error"), MB_OK | MB_ICONSTOP );
              return;
              }

              TCHAR szPath [ MAX_PATH ];
              HRESULT hr;

              hr = ::SHGetSpecialFolderPath( m_hWnd, szPath, CSIDL_FAVORITES, TRUE );
              if (FAILED(hr))
              {
              MessageBox( _T("The path of the Favorites folder cannot be found."),
              _T("Error"), MB_OK | MB_ICONSTOP );
              return;
              }

              bResult = (*lpfnDoOrganizeFavDlg) ( m_hWnd, szPath ) ? true : false;

              ::FreeLibrary( hMod );
              }
              else//如果"shdocvw.dll"已經在調用者進程的地址空間中則直接使用。
              {
              LPFNORGFAV lpfnDoOrganizeFavDlg = (LPFNORGFAV)
              ::GetProcAddress( hMod, "DoOrganizeFavDlg" );

              if (lpfnDoOrganizeFavDlg == NULL)
              {
              MessageBox( _T("The entry point DoOrganizeFavDlg cannot be found\n")
              _T("in the dynamic link library ShDocVw.DLL."),
              _T("Error"), MB_OK | MB_ICONSTOP );
              return;
              }

              TCHAR szPath [ MAX_PATH ];
              HRESULT hr;

              hr = ::SHGetSpecialFolderPath( m_hWnd, szPath, CSIDL_FAVORITES, TRUE );
              if (FAILED(hr))
              {
              MessageBox( _T("The path of the Favorites folder cannot be found."),
              _T("Error"), MB_OK | MB_ICONSTOP );
              return;
              }


              bResult = (*lpfnDoOrganizeFavDlg) ( m_hWnd, szPath ) ? true : false;
              }

              return;


              }

               3、討論

              實際上,從“DoOrganizeFavDlg”函數的原型聲明我們可以看到,由于需要一個路徑,所以“整理收藏夾”對話框其實不僅可以用來整 理收藏夾,還可以整理磁盤上的目錄。而且所謂的整理也不過是提供了一個對話框使用戶用起來比較方便而已,和直接在資源管理器中整理沒有實質性的差別。因此 調用“整理收藏夾”對話框的方法從IE4.0開始就沒有變過,除了對話框的布局有所改變。


              typedef UINT (CALLBACK* LPFNORGFAV)(HWND, LPTSTR);

              IE 4.0的“整理收藏夾”對話框

              IE 4.0的“整理收藏夾”對話框(原本的設計)

              “添加到收藏夾”就不同了,“DoAddToFavDlg”函數不再像“DoOrganizeFavDlg”函數一樣對所有IE的版本都適用。

               參考資料:

              MSDN: Adding Internet Explorer Favorites to Your Application


            posted on 2007-07-29 15:10 旅途 閱讀(896) 評論(0)  編輯 收藏 引用 所屬分類: BHO

            久久精品国产免费观看| 久久人人爽人人爽人人片AV东京热| 人妻无码精品久久亚瑟影视| 久久久久亚洲AV片无码下载蜜桃| 亚洲伊人久久精品影院| 韩国无遮挡三级久久| 久久综合色区| 久久国产热精品波多野结衣AV| 久久99国产精品久久久| 久久久久亚洲精品无码网址 | 精品国产热久久久福利| 一本久久免费视频| 伊人色综合久久| 久久香综合精品久久伊人| 亚洲国产天堂久久久久久| 久久亚洲欧美日本精品| 一本久久a久久精品vr综合| 久久久久亚洲精品天堂久久久久久 | 亚洲精品无码久久久影院相关影片| 久久精品国产福利国产秒| 国产美女亚洲精品久久久综合 | 久久这里只精品国产99热| 国产成人无码精品久久久性色| 久久本道久久综合伊人| 91精品国产9l久久久久| 一本色道久久88精品综合| 久久精品国产福利国产琪琪| 久久久91精品国产一区二区三区| 久久精品国产男包| 久久精品国产男包| 中文字幕久久精品| 漂亮人妻被中出中文字幕久久 | 九九热久久免费视频| 一本色道久久88加勒比—综合| 1000部精品久久久久久久久| 狠狠精品久久久无码中文字幕 | 久久九九全国免费| 亚洲国产精品人久久| 热久久这里只有精品| 91久久精品视频| 亚洲综合精品香蕉久久网97|