1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
int __stdcall BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
{ // Permet de centrer la boite à l'ecran
TRect rect;
GetWindowRect(hwnd, &rect);
MoveWindow(hwnd,
FPrincipal->ClientOrigin.x+FPrincipal->ClientWidth/2-rect.Width()/2,
FPrincipal->ClientOrigin.y+FPrincipal->ClientHeight/2 - rect.Height()/2,
rect.Width(),
rect.Height(),
true);
switch (uMsg)
{
case BFFM_INITIALIZED:
{
SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);
}
}
return 0;
}
//---------------------------------------------------------------------------
void __fastcall TFPrincipal::SaveDBClick(TObject *Sender)
{
char Path[MAX_PATH];
char BufferDisplayName[MAX_PATH];
PItemIDList IDRoot;
SHGetSpecialFolderLocation(Handle, CSIDL_DRIVES, &IDRoot);
TBrowseInfo BrowseInfo;
ZeroMemory(&BrowseInfo, sizeof(TBrowseInfo));
BrowseInfo.hwndOwner = Handle;
BrowseInfo.pidlRoot = IDRoot;
BrowseInfo.pszDisplayName = BufferDisplayName;
BrowseInfo.lpszTitle = "Sélectionnez un dossier pour le backup";
BrowseInfo.ulFlags = BIF_DONTGOBELOWDOMAIN | BIF_RETURNFSANCESTORS |
BIF_NEWDIALOGSTYLE;
BrowseInfo.lParam=LPARAM(&PathBackUp);
BrowseInfo.lpfn = BrowseCallbackProc;
PItemIDList PList = SHBrowseForFolder(&BrowseInfo);
if (PList)
SHGetPathFromIDList(PList, Path); |
Partager