• <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 旅途 閱讀(886) 評論(0)  編輯 收藏 引用 所屬分類: BHO

            亚洲精品成人久久久| 亚洲va久久久噜噜噜久久狠狠| 久久超乳爆乳中文字幕| 国产V综合V亚洲欧美久久| 91久久精品国产成人久久| 久久久久国色AV免费观看| 久久天天躁狠狠躁夜夜躁2014| 亚洲精品高清国产一线久久| 爱做久久久久久| 亚洲精品无码久久一线| 久久精品嫩草影院| 久久精品国产亚洲av麻豆蜜芽| 久久电影网2021| 色婷婷综合久久久久中文一区二区| 久久国产精品久久精品国产| 久久精品国产99久久久古代| 亚洲综合久久综合激情久久| 无码久久精品国产亚洲Av影片| 久久精品国产WWW456C0M| 97久久超碰成人精品网站| 欧美大战日韩91综合一区婷婷久久青草| 午夜天堂av天堂久久久| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 日韩AV毛片精品久久久| 人人狠狠综合久久88成人| 日韩中文久久| 精品欧美一区二区三区久久久 | 久久99精品国产麻豆| 人妻无码精品久久亚瑟影视| 一级做a爱片久久毛片| 精品午夜久久福利大片| 久久66热人妻偷产精品9| 天堂久久天堂AV色综合| 无码人妻久久一区二区三区免费 | 久久久久国产精品三级网| 伊人热人久久中文字幕| 久久精品一区二区三区不卡| 精品久久久久久中文字幕人妻最新| 国内精品综合久久久40p| 性做久久久久久久久浪潮| 婷婷久久综合九色综合九七|