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. ]