SHGetSpecialFolderLocation함수로 PIDL을 구한뒤 경로를 구하세요.
다음 함수를 쓰시면 될겁니다.
[code]
void MyGetSpecialFolderPath(HWND hWnd, int nFolder, char *szPath)
{
LPITEMIDLIST pidl;
LPMALLOC pMalloc;
SHGetSpecialFolderLocation(hWnd,nFolder,&pidl);
SHGetPathFromIDList(pidl, szPath);
SHGetMalloc(&pMalloc);
pMalloc->Free(pidl);
pMalloc->Release();
}[/code]
그리고 다음과 같이 코딩하시면 됩니다.
[code]
#include <shlobj.h>
char path[MAX_PATH]={0};
MyGetSpecialFolderPath(this->m_hWnd, CSIDL_FAVORITES, path);
[/code]
그럼 즐프하시길...
[code]
TCHAR sz[MAX_PATH]; // 환경 변수가 포함된 즐겨찾기 경로
TCHAR szPath[MAX_PATH]; // 즐겨 찾기가 있는 폴더 경로
HKEY hKey;
DWORD dwSize;
// 즐겨찾기 정보가 있는 파일 위치를 알아온다.
if(RegOpenKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders"),
&hKey) != ERROR_SUCCESS)
{
TRACE0("Favorites folder not found\n");
return FALSE;
}
dwSize = sizeof(sz);
// 환경변수가 포함된 즐겨찾기 경로를 가져온다.
// %USERPROFILE%\Favorites
RegQueryValueEx(hKey, _T("Favorites"), NULL, NULL, (LPBYTE)sz, &dwSize);
// 환경변수를 확장하여 완전한 경로를 얻는다.
ExpandEnvironmentStrings(sz, szPath, MAX_PATH);
RegCloseKey(hKey);
AfxMessageBox(szPath); // 폴더 확인
[/code]
다음 함수를 쓰시면 될겁니다.
[code]
void MyGetSpecialFolderPath(HWND hWnd, int nFolder, char *szPath)
{
LPITEMIDLIST pidl;
LPMALLOC pMalloc;
SHGetSpecialFolderLocation(hWnd,nFolder,&pidl);
SHGetPathFromIDList(pidl, szPath);
SHGetMalloc(&pMalloc);
pMalloc->Free(pidl);
pMalloc->Release();
}[/code]
그리고 다음과 같이 코딩하시면 됩니다.
[code]
#include <shlobj.h>
char path[MAX_PATH]={0};
MyGetSpecialFolderPath(this->m_hWnd, CSIDL_FAVORITES, path);
[/code]
그럼 즐프하시길...
[code]
TCHAR sz[MAX_PATH]; // 환경 변수가 포함된 즐겨찾기 경로
TCHAR szPath[MAX_PATH]; // 즐겨 찾기가 있는 폴더 경로
HKEY hKey;
DWORD dwSize;
// 즐겨찾기 정보가 있는 파일 위치를 알아온다.
if(RegOpenKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders"),
&hKey) != ERROR_SUCCESS)
{
TRACE0("Favorites folder not found\n");
return FALSE;
}
dwSize = sizeof(sz);
// 환경변수가 포함된 즐겨찾기 경로를 가져온다.
// %USERPROFILE%\Favorites
RegQueryValueEx(hKey, _T("Favorites"), NULL, NULL, (LPBYTE)sz, &dwSize);
// 환경변수를 확장하여 완전한 경로를 얻는다.
ExpandEnvironmentStrings(sz, szPath, MAX_PATH);
RegCloseKey(hKey);
AfxMessageBox(szPath); // 폴더 확인
[/code]
'Windows > MFC' 카테고리의 다른 글
F1키 눌러도 안뜨게 해주기 (0) | 2013.10.02 |
---|---|
Message Map 메시지 맵 (0) | 2013.10.02 |
jpeg encoder and decoder (0) | 2013.10.02 |
CxImage (jpeg, bmp, png) (0) | 2013.10.02 |
팝업메뉴 띄우기 (popup) (0) | 2013.10.02 |