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

            91久久福利国产成人精品| 久久久久这里只有精品 | 三级三级久久三级久久| 国产亚洲精品美女久久久| 色婷婷噜噜久久国产精品12p| 久久精品a亚洲国产v高清不卡| 久久亚洲AV永久无码精品| 久久精品国产一区| 亚洲国产精品无码久久| 亚洲AV伊人久久青青草原| 亚洲国产精品久久久久久| 久久精品国产99久久久| 精品久久久无码21p发布 | 99久久这里只有精品| 久久综合亚洲色一区二区三区| 久久99热这里只有精品国产| 69久久夜色精品国产69| 精品无码久久久久国产动漫3d| 久久久久久国产精品无码下载| 久久久久四虎国产精品| 久久青青草原亚洲av无码app| 最新久久免费视频| 久久久久亚洲精品无码网址| segui久久国产精品| 久久青青草原精品影院| 久久久无码精品亚洲日韩按摩| 久久精品国产99久久久古代| 亚洲精品99久久久久中文字幕 | 91超碰碰碰碰久久久久久综合| 久久精品九九亚洲精品| 日韩精品无码久久久久久| 久久精品国产亚洲AV久| 2021国内久久精品| 欧美亚洲国产精品久久| 久久天天躁夜夜躁狠狠躁2022| 99久久香蕉国产线看观香| 欧美亚洲国产精品久久久久| 色青青草原桃花久久综合| 久久久亚洲欧洲日产国码是AV| 久久91精品国产91| 亚洲va国产va天堂va久久|