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

            久久久久免费精品国产| 亚洲午夜久久久影院| 狠狠色综合网站久久久久久久| 亚洲嫩草影院久久精品| 伊人色综合九久久天天蜜桃| 伊人久久综合无码成人网| 精品免费tv久久久久久久| 久久青青草原精品国产软件 | 精品久久人妻av中文字幕| 精品人妻伦九区久久AAA片69| 精品国产日韩久久亚洲| 久久国产精品-久久精品| 日日狠狠久久偷偷色综合0| 国内精品久久久久伊人av| 麻豆国内精品久久久久久| 久久亚洲国产精品一区二区| 久久综合九色综合网站| 久久涩综合| 久久精品成人免费观看97| 精品无码久久久久国产| 囯产精品久久久久久久久蜜桃| 国产精品日韩深夜福利久久| 精品久久久久久国产潘金莲| 偷窥少妇久久久久久久久| 久久久久国产亚洲AV麻豆| 99久久亚洲综合精品成人| 成人国内精品久久久久一区| 亚洲色大成网站www久久九| 香蕉久久AⅤ一区二区三区| 欧美精品一本久久男人的天堂| 国产午夜精品久久久久免费视| 中文成人久久久久影院免费观看| 久久久久无码精品| 国产香蕉97碰碰久久人人| 久久久国产精品网站| 久久九九亚洲精品| 91久久香蕉国产熟女线看| 国产毛片久久久久久国产毛片| 精品人妻伦九区久久AAA片69| 久久久久久a亚洲欧洲aⅴ| 国产精品成人99久久久久|