WEB开发网
开发学院操作系统Windows Vista Windows Vista IE 7保护模式开发者生存指南 阅读

Windows Vista IE 7保护模式开发者生存指南

 2008-08-22 17:24:11 来源:WEB开发网   
核心提示: 下面示例代码中首先调用IEShowSaveFileDialog()提示用户输入文件路径:void CBandDialog::OnSaveLog(UINT uCode, int nID, HWND hwndCtrl){HRESULT hr;HANDLE hState;LPWSTR pwszS

下面示例代码中首先调用IEShowSaveFileDialog()提示用户输入文件路径:

void CBandDialog::OnSaveLog(UINT uCode, int nID, HWND hwndCtrl)
{
HRESULT hr;
HANDLE hState;
LPWSTR pwszSelectedFilename = NULL;
const DWORD dwSaveFlags =
    OFN_ENABLESIZING | OFN_HIDEREADONLY | OFN_PATHMUSTEXIST |
    OFN_OVERWRITEPROMPT;
  
// Get a filename from the user.
hr = IEShowSaveFileDialog (
     m_hWnd, L"Saved log.txt", NULL,
     L"Text files|*.txt|All files|*.*|",
     L"txt", 1, dwSaveFlags, &pwszSelectedFilename,
     &hState );
  
if ( S_OK != hr )
return;

接下来,调用IEGetWriteableFolderPath()获取可写的缓存目录路径:

LPWSTR pwszCacheDir = NULL;
TCHAR szTempFile[MAX_PATH] = {0};
  
// 获取IE缓存目录路径,其为保护模式下可写的目录
hr = IEGetWriteableFolderPath ( FOLDERID_InternetCache, &pwszCacheDir );
  
if ( SUCCEEDED(hr) )
  {
  // 得到目录中的一个临时文件名
  GetTempFileName ( CW2CT(pwszCacheDir), _T("bob"), 0, szTempFile );
  CoTaskMemFree ( pwszCacheDir );
  
  // 把数据写到临时文件中
  hr = WriteLogFile ( szTempFile );
}

如果一切正常,接着会调用IESaveFile(),IESaveFile()接受IEShowSaveFileDialog()返回的状态句柄及临时文件路径作为参数,要注意的是,这个HANDLE不是标准的句柄,其无需关闭,在调用完IESaveFile()之后,HANDLE会自动释放。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Windows Vista IE

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接