mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 21:49:09 +02:00
* IFileDialogs and friends. Needed for Vista like fileopendialogs
git-svn-id: trunk@14431 -
This commit is contained in:
parent
4c3cb51ea8
commit
a6f673082e
@ -838,11 +838,51 @@ Const
|
|||||||
SMSET_DONTOWN = $00000001; // The Menuband doesn't own the non-ref counted object
|
SMSET_DONTOWN = $00000001; // The Menuband doesn't own the non-ref counted object
|
||||||
SMINV_REFRESH = $00000001;
|
SMINV_REFRESH = $00000001;
|
||||||
SMINV_ID = $00000008;
|
SMINV_ID = $00000008;
|
||||||
|
FDEOR_DEFAULT = 0;
|
||||||
|
FDEOR_ACCEPT = 1;
|
||||||
|
FDEOR_REFUSE = 2;
|
||||||
|
FDESVR_DEFAULT = 0;
|
||||||
|
FDESVR_ACCEPT = 1;
|
||||||
|
FDESVR_REFUSE = 2;
|
||||||
|
FDAP_BOTTOM = 0;
|
||||||
|
FDAP_TOP = 1;
|
||||||
|
FOS_OVERWRITEPROMPT = $2;
|
||||||
|
FOS_STRICTFILETYPES = $4;
|
||||||
|
FOS_NOCHANGEDIR = $8;
|
||||||
|
FOS_PICKFOLDERS = $20;
|
||||||
|
FOS_FORCEFILESYSTEM = $40;
|
||||||
|
FOS_ALLNONSTORAGEITEMS = $80;
|
||||||
|
FOS_NOVALIDATE = $100;
|
||||||
|
FOS_ALLOWMULTISELECT = $200;
|
||||||
|
FOS_PATHMUSTEXIST = $800;
|
||||||
|
FOS_FILEMUSTEXIST = $1000;
|
||||||
|
FOS_CREATEPROMPT = $2000;
|
||||||
|
FOS_SHAREAWARE = $4000;
|
||||||
|
FOS_NOREADONLYRETURN = $8000;
|
||||||
|
FOS_NOTESTFILECREATE = $10000;
|
||||||
|
FOS_HIDEMRUPLACES = $20000;
|
||||||
|
FOS_HIDEPINNEDPLACES = $40000;
|
||||||
|
FOS_NODEREFERENCELINKS = $100000;
|
||||||
|
FOS_DONTADDTORECENT = $2000000;
|
||||||
|
FOS_FORCESHOWHIDDEN = $10000000;
|
||||||
|
FOS_DEFAULTNOMINIMODE = $20000000;
|
||||||
|
FOS_FORCEPREVIEWPANEON = $40000000;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
SFGAOF = ULONG;
|
SFGAOF = ULONG;
|
||||||
TSFGAOF = SFGAOF;
|
TSFGAOF = SFGAOF;
|
||||||
PSFGAOF = ^SFGAOF;
|
PSFGAOF = ^SFGAOF;
|
||||||
|
SHCONTF = longint;
|
||||||
|
TSHCONTF = SHCONTF;
|
||||||
|
PSHCONTF = ^SHCONTF;
|
||||||
|
SIGDN = longint;
|
||||||
|
TSIGDN = SIGDN;
|
||||||
|
PSIGDN = ^SIGDN;
|
||||||
|
SICHINTF = longint;
|
||||||
|
TSICHINTF = SICHINTF;
|
||||||
|
PSICHINTF = ^SICHINTF;
|
||||||
|
|
||||||
|
|
||||||
PROPERTYUI_NAME_FLAGS = DWord; // enum
|
PROPERTYUI_NAME_FLAGS = DWord; // enum
|
||||||
PROPERTYUI_FORMAT_FLAGS = DWord;
|
PROPERTYUI_FORMAT_FLAGS = DWord;
|
||||||
PROPERTYUI_FLAGS = Dword;
|
PROPERTYUI_FLAGS = Dword;
|
||||||
@ -1715,7 +1755,28 @@ Type
|
|||||||
LPAASHELLMENUITEM = PtagAASHELLMENUITEM;
|
LPAASHELLMENUITEM = PtagAASHELLMENUITEM;
|
||||||
PLPAASHELLMENUITEM = ^LPAASHELLMENUITEM;
|
PLPAASHELLMENUITEM = ^LPAASHELLMENUITEM;
|
||||||
|
|
||||||
|
FDE_OVERWRITE_RESPONSE = longint;
|
||||||
|
TFDE_OVERWRITE_RESPONSE = FDE_OVERWRITE_RESPONSE;
|
||||||
|
PFDE_OVERWRITE_RESPONSE = ^longint;
|
||||||
|
FDE_SHAREVIOLATION_RESPONSE = longint;
|
||||||
|
TFDE_SHAREVIOLATION_RESPONSE = FDE_SHAREVIOLATION_RESPONSE;
|
||||||
|
PFDE_SHAREVIOLATION_RESPONSE = ^FDE_SHAREVIOLATION_RESPONSE;
|
||||||
|
FILEOPENDIALOGOPTIONS = longint;
|
||||||
|
TFILEOPENDIALOGOPTIONS = FILEOPENDIALOGOPTIONS;
|
||||||
|
PFILEOPENDIALOGOPTIONS = ^TFILEOPENDIALOGOPTIONS;
|
||||||
|
FDAP = longint;
|
||||||
|
TFDAP= FDAP;
|
||||||
|
PFDAP= ^FDAP;
|
||||||
|
_COMDLG_FILTERSPEC = packed record
|
||||||
|
pszName : LPCWSTR;
|
||||||
|
pszSpec : LPCWSTR;
|
||||||
|
end;
|
||||||
|
|
||||||
|
COMDLG_FILTERSPEC = _COMDLG_FILTERSPEC;
|
||||||
|
TCOMDLG_FILTERSPEC = _COMDLG_FILTERSPEC;
|
||||||
|
PCOMDLG_FILTERSPEC = ^_COMDLG_FILTERSPEC;
|
||||||
|
|
||||||
|
|
||||||
IPersistFolder = Interface(IPersist)
|
IPersistFolder = Interface(IPersist)
|
||||||
['{000214EA-0000-0000-C000-000000000046}']
|
['{000214EA-0000-0000-C000-000000000046}']
|
||||||
function Initialize (pild : LPCITEMIDLIST): HResult; StdCall;
|
function Initialize (pild : LPCITEMIDLIST): HResult; StdCall;
|
||||||
@ -1999,6 +2060,67 @@ Type
|
|||||||
end;
|
end;
|
||||||
IShellLink = IShellLinkA;
|
IShellLink = IShellLinkA;
|
||||||
|
|
||||||
|
PIShellItem= ^IShellItem;
|
||||||
|
IShellItem = interface(IUnknown)
|
||||||
|
['{43826d1e-e718-42ee-bc55-a1e261c37bfe}']
|
||||||
|
function BindToHandler(pbc:IBindCTX;bhid:PGUID;RIID:PIID;ppv:ppointer):HResult;Stdcall;
|
||||||
|
function GetParent(ppsi:PISHellItem):HResult;Stdcall;
|
||||||
|
function GetDisplayName(sigdnname:SIGDN;ppszName:LPWSTR):HResult; Stdcall;
|
||||||
|
function GetAttributes(sfgaomask:SFGAOF;psfgaoAttribs:PSFGAOF):HResult;Stdcall;
|
||||||
|
function Compare(psi:IShellItem;hint:SICHINTF;piorder:PINT):HResult; Stdcall;
|
||||||
|
end;
|
||||||
|
|
||||||
|
IModalWindow = Interface(IUnknown)
|
||||||
|
['{b4db1657-70d7-485e-8e3e-6fcb5a5c1802}']
|
||||||
|
function Show(hwndparent:HWND):HResult;StdCall;
|
||||||
|
end;
|
||||||
|
|
||||||
|
IShellItemFilter = Interface(IUnknown)
|
||||||
|
['{2659B475-EEB8-48b7-8F07-B378810F48CF}']
|
||||||
|
function IncludeItem(psi:IShellItem):HResult;StdCall;
|
||||||
|
function GetEnumFlagsForItem(psi:IShellItem;pgrfflags :PSHCONTF):HRESULT;Stdcall;
|
||||||
|
end;
|
||||||
|
|
||||||
|
IFileDialog = Interface;
|
||||||
|
IFileDialogEvents = Interface(IUnknown)
|
||||||
|
['{973510db-7d7f-452b-8975-74a85828d354}']
|
||||||
|
function OnFileOk (pfd:IFileDialog):HResult; Stdcall;
|
||||||
|
function OnFolderChanging (pfd:IFileDialog;psifolder:IShellItem):HResult; Stdcall;
|
||||||
|
function OnFolderChange (pfd:IFileDialog):HResult; Stdcall;
|
||||||
|
function OnSelectionChange(pfd:IFileDialog):HResult; Stdcall;
|
||||||
|
function OnShareViolation (pfd:IFileDialog;psi:IShellItem;pResponse :pFDE_SHAREVIOLATION_RESPONSE):HResult; Stdcall;
|
||||||
|
function OnTypeChange (pfd:IFileDialog):HResult; Stdcall;
|
||||||
|
function OnOverwrite (pfd:IFileDialog;psi:IShellItem;pResponse :pFDE_OVERWRITE_RESPONSE):HResult; Stdcall;
|
||||||
|
end;
|
||||||
|
|
||||||
|
IFileDialog = Interface(IModalWindow)
|
||||||
|
['{42f85136-db7e-439c-85f1-e4075d135fc8}']
|
||||||
|
function SetFileTypes(cFileTypes:UINT;rgFilterSpec:pCOMDLG_FILTERSPEC):HRESULT;Stdcall;
|
||||||
|
function SetFileTypeIndex(iFileType:UINT):HRESULT;Stdcall;
|
||||||
|
function GetFileTypeIndex(piFileType:pUINT):HRESULT;Stdcall;
|
||||||
|
function Advise(pdfde:IFileDialogEvents;pdwcookie:PDWORD):HRESULT;Stdcall;
|
||||||
|
function unadvise(dwCookie:DWORD):HRESULT;Stdcall;
|
||||||
|
function SetOptions(fos:FILEOPENDIALOGOPTIONS):HRESULT;Stdcall;
|
||||||
|
function GetOptions(pfos:pFILEOPENDIALOGOPTIONS):HRESULT;Stdcall;
|
||||||
|
function SetDefaultFolder(psi:IShellItem):HRESULT;Stdcall;
|
||||||
|
function SetFolder(psi:IShellItem):HRESULT;Stdcall;
|
||||||
|
function Getfolder(ppsi:pIShellItem):HRESULT;Stdcall;
|
||||||
|
function GetCurrentSelection(ppsi:pIShellItem):HRESULT;Stdcall;
|
||||||
|
function SetFileName(pszName:LPCWSTR):HRESULT;Stdcall;
|
||||||
|
function GetFileName(pszName:pLPWSTR):HRESULT;Stdcall;
|
||||||
|
function SetTitle(pszTitle:LPCWSTR):HRESULT;Stdcall;
|
||||||
|
function SetOkButtonLabel(pszText:LPCWSTR):HRESULT;Stdcall;
|
||||||
|
function SetFileNameLabel(pszLabel:LPCWSTR):HRESULT;Stdcall;
|
||||||
|
function GetResult(ppsi:pIShellItem):HRESULT;Stdcall;
|
||||||
|
function AddPlace(psi:IShellItem;fdap:FDAP):HRESULT;Stdcall;
|
||||||
|
function SetDefaultExtension(pszDefaultExtension:LPCWSTR):HRESULT;Stdcall;
|
||||||
|
function Close(hr:HRESULT):HRESULT;Stdcall;
|
||||||
|
function SetClientGuid(GUID:PGUID):HRESULT;Stdcall;
|
||||||
|
function ClearClientData:HRESULT;Stdcall;
|
||||||
|
function SetFilter(pfilter:IShellItemFilter):HRESULT;Stdcall;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
function SHGetMalloc(out ppmalloc: IMalloc):HResult;StdCall; external 'shell32' name 'SHGetMalloc';
|
function SHGetMalloc(out ppmalloc: IMalloc):HResult;StdCall; external 'shell32' name 'SHGetMalloc';
|
||||||
function SHGetDesktopFolder(out ppshf:IShellFolder):HResult;StdCall; external 'shell32' name 'SHGetDesktopFolder';
|
function SHGetDesktopFolder(out ppshf:IShellFolder):HResult;StdCall; external 'shell32' name 'SHGetDesktopFolder';
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user