• <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

            久久高潮一级毛片免费| 亚洲乱码中文字幕久久孕妇黑人| 久久精品毛片免费观看| 99久久国产综合精品五月天喷水| 精品国产一区二区三区久久蜜臀| 无码任你躁久久久久久| 久久精品国产亚洲AV无码娇色| 伊人久久大香线蕉精品| 久久精品国产日本波多野结衣| 国内精品伊人久久久久AV影院| 久久久久国产视频电影| 色欲综合久久躁天天躁蜜桃| 国产—久久香蕉国产线看观看| 亚洲国产欧美国产综合久久| 久久99精品久久久久久秒播| 天天躁日日躁狠狠久久| 一日本道伊人久久综合影| 97精品久久天干天天天按摩| 欧美亚洲国产精品久久| 久久AⅤ人妻少妇嫩草影院| 99久久久国产精品免费无卡顿| 2020国产成人久久精品| 国产精品久久久久久久久久免费| 精品国际久久久久999波多野| 久久婷婷色香五月综合激情 | 久久这里只精品99re66| 久久精品国内一区二区三区| 日日噜噜夜夜狠狠久久丁香五月| 精品乱码久久久久久夜夜嗨| 久久香蕉一级毛片| 精品久久一区二区三区| 久久精品国产亚洲AV香蕉| 亚洲中文久久精品无码| 久久天天躁夜夜躁狠狠躁2022| 久久笫一福利免费导航| 99久久香蕉国产线看观香| 亚洲AV伊人久久青青草原| 无码8090精品久久一区| 国产精品久久久久久五月尺| 久久久这里有精品| 久久婷婷五月综合97色|