com-IFileDlg 进行文件的 打开或者保存

时间:2022-07-23
本文章向大家介绍com-IFileDlg 进行文件的 打开或者保存,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一丶打开文件

CoInitialize(NULL);
	
	IFileOpenDialog * pOpenFileDlg = NULL;
	HRESULT hr = S_FALSE;
	hr = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_ALL, IID_IFileOpenDialog, (LPVOID*)&pOpenFileDlg);

	if (SUCCEEDED(hr))
	{
		hr = pOpenFileDlg->Show(NULL);
		if (SUCCEEDED(hr))
		{
			//从对话框中获取文件名
			IShellItem* pItem;
			hr = pOpenFileDlg->GetResult(&pItem);
			if (SUCCEEDED(hr))
			{
				//结果成功,获取名字.
				PWSTR pszFilePath = NULL;
				hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &pszFilePath);
				if (SUCCEEDED(hr))
				{
					//进行你的代码操作. pszFilePath = 打开的路径
					CString str(pszFilePath);
					m_ChoosPluginEdt.SetWindowTextW(str);
					CoTaskMemFree(pszFilePath);//释放内存
				}
				pItem->Release();
			}
		}
		pOpenFileDlg->Release();//释放内存
	}

	CoUninitialize();

//保存文件用 IFileSaveDialog 用到再写