掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SHGetKnownFolderPathの引数 (ID:67414)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
今試してみました。 REFKNOWNFOLDERIDを間違えて解釈していたので 0 じゃだめかもと思ったわけです。 (REFKNOWNFOLDERIDがGUIDだとばかり思っていた。REFってついているからGUID*なのね。) 試したコード #include <windows.h> #pragma comment(lib, "User32.lib") #pragma comment(lib, "ole32.lib") int main() { // FOLDERID_Documents // GUID {FDD39AD0-238F-46AF-ADB4-6C85480369C7} //HRESULT SHGetKnownFolderPath(REFKNOWNFOLDERID rfid, // DWORD dwFlags, // HANDLE hToken, // PWSTR *ppszPath // ); typedef GUID KNOWNFOLDERID; typedef HRESULT (WINAPI *SHGETKNOWNFOLDERPATH)(KNOWNFOLDERID*, DWORD, HANDLE, PWSTR*); #define KF_FLAG_CREATE (0x00008000) #define KF_FLAG_NO_ALIAS (0x00001000) HMODULE hDll = ::LoadLibrary(TEXT("shell32.dll")); if (hDll) { SHGETKNOWNFOLDERPATH pSHGetKnownFolderPath; pSHGetKnownFolderPath = (SHGETKNOWNFOLDERPATH)::GetProcAddress(hDll, "SHGetKnownFolderPath"); if (pSHGetKnownFolderPath) { KNOWNFOLDERID rfid = {0xFDD39AD0,0x238F,0x46AF,0xAD,0xB4,0x6C,0x85,0x48,0x03,0x69,0xC7}; PWSTR pBuffer = NULL; HRESULT hr = (*pSHGetKnownFolderPath)(&rfid, 0, NULL, &pBuffer); if (SUCCEEDED(hr)) { MessageBoxW(NULL, pBuffer, L"", MB_OK); ::CoTaskMemFree(pBuffer); } } ::FreeLibrary(hDll); } return 0; } 間違っていたら指摘してください。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.