Advertisement
Val_Kir

Лекция 2

Apr 21st, 2021
439
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.40 KB | None | 0 0
  1. Lec2Pg10
  2. Lec2Pg10.cpp
  3. #include <windows.h>
  4. #include <shobjidl.h>
  5. int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow)
  6. {
  7.  HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED |
  8.   COINIT_DISABLE_OLE1DDE);
  9.  if (SUCCEEDED(hr))
  10.  {
  11.   IFileOpenDialog *pFileOpen;
  12.   // Создание объекта FileOpenDialog.
  13.   hr = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_ALL,
  14.    IID_IFileOpenDialog, reinterpret_cast<void**>(&pFileOpen));
  15.   if (SUCCEEDED(hr))
  16.   {
  17.    // Показать диалог Open.
  18.    hr = pFileOpen->Show(NULL);
  19.    // Получить имя файла от диалога.
  20.    if (SUCCEEDED(hr))
  21.    {
  22.     IShellItem *pItem;
  23.     hr = pFileOpen->GetResult(&pItem);
  24.     if (SUCCEEDED(hr))
  25.     {
  26.      PWSTR pszFilePath;
  27.      hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &pszFilePath);
  28.      // Показать имя файла пользователю.
  29.      if (SUCCEEDED(hr))
  30.      {
  31.       MessageBox(NULL, pszFilePath, L"File Path", MB_OK);
  32.       CoTaskMemFree(pszFilePath);
  33.      }
  34.      pItem->Release();
  35.     }
  36.    }
  37.    pFileOpen->Release();
  38.   }
  39.   CoUninitialize();
  40.  }
  41.  return 0;
  42. }
  43. Lec2Pg20
  44. Lec2Pg20.cpp
  45. #include <windows.h>
  46. #include <shobjidl.h>
  47. #include <atlbase.h> // Содержит объявление CComPtr.
  48. int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow)
  49. {
  50.  HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED |
  51.   COINIT_DISABLE_OLE1DDE);
  52.  if (SUCCEEDED(hr))
  53.  {
  54.   CComPtr<IFileOpenDialog> pFileOpen;
  55.   // Создать объект FileOpenDialog.
  56.   hr = pFileOpen.CoCreateInstance(__uuidof(FileOpenDialog));
  57.   if (SUCCEEDED(hr))
  58.   {
  59.    // Show the Open dialog box.
  60.    hr = pFileOpen->Show(NULL);
  61.    // Получить имя файла из диалога.
  62.    if (SUCCEEDED(hr))
  63.    {
  64.     CComPtr<IShellItem> pItem;
  65.     hr = pFileOpen->GetResult(&pItem);
  66.     if (SUCCEEDED(hr))
  67.     {
  68.      PWSTR pszFilePath;
  69.      hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &pszFilePath);
  70.      // Показать имя файла пользователю.
  71.      if (SUCCEEDED(hr))
  72.      {
  73.       MessageBox(NULL, pszFilePath, L"File Path", MB_OK);
  74.       CoTaskMemFree(pszFilePath);
  75.      }
  76.     }
  77.     // pItem выходит из области видимости.
  78.    }
  79.    // pFileOpen выходит из области видимости.
  80.   }
  81.   CoUninitialize();
  82.  }
  83.  return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement