Windows Programming

특수 디렉토리 가져오기

macro 2010. 2. 17. 21:16
반응형
1. 윈도우 디렉토리
UINT GetWindowsDirectory(LPYSTR lpBuffer, UINT uSize);
2. 시스템 디렉토리
UINT GetSystemDirectory(LPTSTR lpBuffer, UINT uSize);  -> System32 서브폴더
3. 특수 폴더 절대 경로 조사
1. HRESULT SHGetSpecialFolderLocation(HWND hwndOwner, int nFolder, LPITEMIDLIST *ppidl);

nFolder - 특수폴더 ID (윈도우즈 API정복 p.1827참고)
LPITEMIDLIST pidl; 의 주소를 넘겨주고 값을 받아온다. 이값으로부터 절대 경로 구할수 있음.

2. BOOL SHGetPathFromIDList(LPCITEMIDLIST pidl, LPSTR pszPath);
 pszPath는 최소한 MAX_PATH의 길이를 가져야 함.

3. PIDL을 다 사용하고 난 후에는 해제한다.
   LPMALLOC pMalloc;
   SHGetMalloc(&pMalloc);
   pMalloc->Free(pidl);
   pMalloc->Release();

ex)
LPITEMIDLIST pidl;
TCHAR szFolder[MAX_PATH];
TCHAR str[256];
LPMALLOC pMalloc;
SHGetSpecialFolderLocation(hWnd, CSIDL_PROGRAMS, &pidl);
SHGetPathFromIDList(pidl, szFolder);
SHGetMalloc(&pMalloc);
pMalloc->Free(pidl);
pMalloc->Release();




 
반응형