E
int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{
switch(uMsg)
{
case BFFM_INITIALIZED:
SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)BrowseSelection);
break;
case BFFM_SELCHANGED:
SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)BrowseSelection);
break;
}
return 1;
}
int GetBrowseFile(HWND hwnd, LPSTR pszDisplayName)
{
LPITEMIDLIST pidlRoot = NULL;
LPITEMIDLIST pidlSelected = NULL;
BROWSEINFO bi = {0};
char szFile[MAX_PATH] = {0};
int result = 0;
LPMALLOC pMalloc = NULL;
SHGetMalloc(&pMalloc);
sprintf(BrowseSelection, "%s", pszDisplayName);
bi.hwndOwner = hwnd;
bi.pidlRoot = pidlRoot;
bi.pszDisplayName = pszDisplayName;
bi.lpszTitle = "Choose a folder...";
bi.ulFlags = BIF_EDITBOX | BIF_NEWDIALOGSTYLE;
bi.lpfn = NULL;
bi.lParam = TRUE;
bi.lpfn = BrowseCallbackProc;
pidlSelected = SHBrowseForFolder(&bi);
if(pidlSelected != NULL)
{
SHGetPathFromIDList(pidlSelected, pszDisplayName);
result = 1;
}
if(pidlSelected) pMalloc->Free(pidlSelected);
if(pidlRoot) pMalloc->Free(pidlRoot);
pMalloc->Release();
return result;
}
[ Dieser Beitrag wurde am 05.01.2003 um 22:49 Uhr von esskar editiert. ]