Geoff Chappell - Software Analyst
IID_IDriveFolderExt | {98467961-4F27-4A1F-9629-22B06D0B5CCB} | Original |
{3EC36F3E-5BA3-4C3D-BF39-10F76C3F7CC6} | Revised |
The original IDriveFolderExt methods are (as ordered in the virtual function table after the IUnknown methods):
Offset | Method |
---|---|
0x0C | DriveMatches |
0x10 | Bind |
0x14 | GetSpace |
with prototypes:
HRESULT DriveMatches (INT);
HRESULT Bind (LPCITEMIDLIST, IBindCtx *, REFIID, PVOID *);
HRESULT GetSpace (ULONGLONG *, ULONGLONG *);
The revision splits the first method:
Offset | Method |
---|---|
0x0C | Initialize |
0x10 | DriveSupportsBurning |
0x14 | Bind |
0x18 | GetSpace |
and the prototypes become:
HRESULT Initialize (INT);
HRESULT DriveSupportsBurning (INT);
HRESULT Bind (PCIDLIST_ABSOLUTE, IBindCtx *, REFIID, PVOID *);
HRESULT GetSpace (ULONGLONG *, ULONGLONG *);
The only known implementation of the IDriveFolderExt interface is by SHELL32. Note that Microsoft feels free to change the IID and methods without changing the name.
The IDriveFolderExt interface is supported by SHELL32 version 6.00 and higher. The revision begins with the build for Windows Vista.
Though this interface dates from 2001, it was still not documented by Microsoft as late as the January 2007 edition of the Windows Vista Software Development Kit (SDK).