52 lines
1.6 KiB
C++
52 lines
1.6 KiB
C++
|
|
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
|
|
|
|
|
//<SnippetFileOpen>
|
|
#include <windows.h>
|
|
#include <shobjidl.h>
|
|
|
|
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow)
|
|
{
|
|
//<SnippetRefCounts>
|
|
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED |
|
|
COINIT_DISABLE_OLE1DDE);
|
|
if (SUCCEEDED(hr))
|
|
{
|
|
IFileOpenDialog *pFileOpen;
|
|
|
|
// Create the FileOpenDialog object.
|
|
hr = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_ALL,
|
|
IID_IFileOpenDialog, reinterpret_cast<void**>(&pFileOpen));
|
|
|
|
if (SUCCEEDED(hr))
|
|
{
|
|
// Show the Open dialog box.
|
|
hr = pFileOpen->Show(NULL);
|
|
|
|
// Get the file name from the dialog box.
|
|
if (SUCCEEDED(hr))
|
|
{
|
|
IShellItem *pItem;
|
|
hr = pFileOpen->GetResult(&pItem);
|
|
if (SUCCEEDED(hr))
|
|
{
|
|
PWSTR pszFilePath;
|
|
hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &pszFilePath);
|
|
|
|
// Display the file name to the user.
|
|
if (SUCCEEDED(hr))
|
|
{
|
|
MessageBox(NULL, pszFilePath, L"File Path", MB_OK);
|
|
CoTaskMemFree(pszFilePath);
|
|
}
|
|
pItem->Release();
|
|
}
|
|
}
|
|
pFileOpen->Release();
|
|
}
|
|
CoUninitialize();
|
|
}
|
|
return 0;
|
|
}
|