本文整理汇总了C++中IFileDialog::SetFileName方法的典型用法代码示例。如果您正苦于以下问题:C++ IFileDialog::SetFileName方法的具体用法?C++ IFileDialog::SetFileName怎么用?C++ IFileDialog::SetFileName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IFileDialog
的用法示例。
在下文中一共展示了IFileDialog::SetFileName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: runModalInternal
//-----------------------------------------------------------------------------
bool VistaFileSelector::runModalInternal ()
{
fileDialog = 0;
HRESULT hr = -1;
if (style == kSelectSaveFile)
{
hr = CoCreateInstance (CLSID_FileSaveDialog, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IFileDialog, &fileDialog));
if (defaultSaveName)
{
fileDialog->SetFileName (UTF8StringHelper (defaultSaveName));
}
}
else
{
hr = CoCreateInstance (CLSID_FileOpenDialog, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IFileDialog, &fileDialog));
if (SUCCEEDED (hr))
{
if (style == kSelectDirectory)
{
DWORD dwOptions = 0;
hr = fileDialog->GetOptions (&dwOptions);
if (SUCCEEDED (hr))
hr = fileDialog->SetOptions (dwOptions | FOS_PICKFOLDERS);
if (FAILED (hr))
{
fileDialog->Release ();
fileDialog = 0;
return false;
}
}
if (allowMultiFileSelection)
{
DWORD dwOptions = 0;
hr = fileDialog->GetOptions (&dwOptions);
if (SUCCEEDED (hr))
hr = fileDialog->SetOptions (dwOptions | FOS_ALLOWMULTISELECT);
if (FAILED (hr))
{
fileDialog->Release ();
fileDialog = 0;
return false;
}
}
}
}
if (FAILED (hr))
{
fileDialog = 0;
return false;
}
if (title)
hr = fileDialog->SetTitle (UTF8StringHelper (title));
DWORD numExtensions = 0;
DWORD defaultFileTypeIndex = 0;
COMDLG_FILTERSPEC* filters = buildExtensionFilter (extensions, defaultExtension, numExtensions, defaultFileTypeIndex);
if (filters)
{
fileDialog->SetFileTypes (numExtensions, filters);
if (defaultFileTypeIndex)
fileDialog->SetFileTypeIndex (defaultFileTypeIndex);
}
if (initialPath && _SHCreateItemFromParsingName)
{
IShellItem* shellItem;
hr = _SHCreateItemFromParsingName (UTF8StringHelper (initialPath), 0, IID_PPV_ARG (IShellItem, &shellItem));
if (SUCCEEDED (hr))
{
fileDialog->SetFolder (shellItem);
shellItem->Release ();
}
}
Win32Frame* win32Frame = frame->getPlatformFrame () ? dynamic_cast<Win32Frame*> (frame->getPlatformFrame ()) : 0;
hr = fileDialog->Show (win32Frame ? win32Frame->getPlatformWindow () : 0);
if (SUCCEEDED (hr))
{
if (allowMultiFileSelection)
{
IFileOpenDialog* openFileDialog = 0;
hr = fileDialog->QueryInterface (IID_PPV_ARG(IFileOpenDialog, &openFileDialog));
if (SUCCEEDED (hr))
{
IShellItemArray* items;
hr = openFileDialog->GetResults (&items);
if (SUCCEEDED (hr))
{
DWORD count;
hr = items->GetCount (&count);
for (DWORD i = 0; i < count; i++)
{
IShellItem* item;
hr = items->GetItemAt (i, &item);
if (SUCCEEDED (hr))
{
LPWSTR filesysPath = 0;
hr = item->GetDisplayName (SIGDN_FILESYSPATH, &filesysPath);
if (SUCCEEDED (hr))
{
//.........这里部分代码省略.........