[
uuid(a8ce1d71-bfd6-4b55-990a-be75aeb926b8),
helpstring("Taskbar
API for VisualBasic (Windows7)"),
version(1.0)
]
library TaskbarAPI
{
typedef struct UUID
{
long Data1;
short Data2;
short Data3;
unsigned char Data4[8];
} UUID;
typedef UUID *REFGUID;
typedef [public] UUID IID;
typedef UUID *REFIID;
typedef [public] UUID
CLSID;
typedef UUID *REFCLSID;
typedef [public] UUID
GUID;
typedef struct RECT
{
long Left;
long Top;
long Right;
long Bottom;
} RECT;
typedef struct FILETIME
{
long LowDateTime;
long HighDateTime;
} FILETIME;
typedef struct WIN32_FIND_DATAW
{
long FileAttributes;
FILETIME CreationTime;
FILETIME LastAccessTime;
FILETIME LastWriteTime;
long FileSizeHigh;
long FileSizeLow;
long Reserved0;
long Reserved1;
unsigned char FileName[520];
unsigned char AlternateFileName[28];
} WIN32_FIND_DATAW;
typedef struct PROPERTYKEY
{
UUID fmtid;
long pid;
} PROPERTYKEY;
typedef struct PROPVARIANT
{
short vt;
short wReserved1;
short wReserved2;
short wReserved3;
long val;
} PROPVARIANT;
typedef enum SLGPConstants
{
SLGP_SHORTPATH = 0x1,
SLGP_UNCPRIORITY = 0x2,
SLGP_RAWPATH = 0x4,
SLGP_RELATIVEPRIORITY = 0x8
} SLGPConstants;
typedef enum SIGDNConstants
{
SIGDN_NORMALDISPLAY = 0x00000000,
SIGDN_PARENTRELATIVEPARSING = 0x80018001,
SIGDN_DESKTOPABSOLUTEPARSING = 0x80028000,
SIGDN_PARENTRELATIVEEDITING = 0x80031001,
SIGDN_DESKTOPABSOLUTEEDITING = 0x8004c000,
SIGDN_FILESYSPATH = 0x80058000,
SIGDN_URL = 0x80068000,
SIGDN_PARENTRELATIVEFORADDRESSBAR = 0x8007c001,
SIGDN_PARENTRELATIVE = 0x80080001
} SIGDNConstants;
typedef enum SFGAOConstants
{
SFGAO_CANCOPY = 0x00000001,
SFGAO_CANMOVE = 0x00000002,
SFGAO_CANLINK = 0x00000004,
SFGAO_STORAGE = 0x00000008,
SFGAO_CANRENAME = 0x00000010,
SFGAO_CANDELETE = 0x00000020,
SFGAO_HASPROPSHEET = 0x00000040,
SFGAO_DROPTARGET = 0x00000100,
SFGAO_CAPABILITYMASK = 0x00000177,
SFGAO_SYSTEM = 0x00001000,
SFGAO_ENCRYPTED = 0x00002000,
SFGAO_ISSLOW = 0x00004000,
SFGAO_LINK = 0x00010000,
SFGAO_SHARE = 0x00020000,
SFGAO_READONLY = 0x00040000,
SFGAO_GHOSTED = 0x00008000,
SFGAO_HIDDEN = 0x00080000,
SFGAO_DISPLAYATTRMASK = 0x000FC000,
SFGAO_NONENUMERATED = 0x00100000,
SFGAO_NEWCONTENT = 0x00200000,
//SFGAO_CANMONIKER = ,
//SFGAO_HASSTORAGE = ,
SFGAO_STREAM = 0x00400000,
SFGAO_VALIDATE = 0x01000000,
SFGAO_REMOVABLE = 0x02000000,
SFGAO_COMPRESSED = 0x04000000,
SFGAO_BROWSABLE = 0x08000000,
SFGAO_FILESYSANCESTOR = 0x10000000,
SFGAO_STORAGEANCESTOR = 0x00800000,
SFGAO_FOLDER = 0x20000000,
SFGAO_FILESYSTEM = 0x40000000,
SFGAO_HASSUBFOLDER = 0x80000000,
SFGAO_CONTENTSMASK = 0x80000000,
SFGAO_STORAGECAPMASK = 0x70C50008,
SFGAO_PKEYSFGAOMASK = 0x81044000
} SFGAOConstants;
typedef enum SICHINTConstants
{
SICHINT_DISPLAY = 0x00000000,
SICHINT_ALLFIELDS = 0x80000000,
SICHINT_CANONICAL = 0x10000000
} SICHINTConstants;
typedef enum SIATTRIBFLAGSConstants
{
SIATTRIBFLAGS_AND = 0x00000001,
SIATTRIBFLAGS_OR = 0x00000002,
SIATTRIBFLAGS_APPCOMPAT = 0x00000003,
SIATTRIBFLAGS_MASK = 0x00000003
} SIATTRIBFLAGSConstants;
typedef enum SLRConstants
{
SLR_NO_UI = 0x0001,
SLR_UPDATE = 0x0004,
SLR_NOUPDATE = 0x0008,
SLR_NOSEARCH = 0x0010,
SLR_NOTRACK = 0x0020,
SLR_NOLINKINFO = 0x0040,
SLR_INVOKE_MSI = 0x0080,
SLR_NO_UI_WITH_MSG_PUMP = 0x0101,
} SLRConstants;
typedef enum KNOWNDESTCATEGORYConstants
{
KDC_FREQUENT = 0x1,
KDC_RECENT = 0x2
} KNOWNDESTCATEGORYConstants;
typedef enum TBPFLAG
{
TBPF_NOPROGRESS = 0x00000000,
TBPF_INDETERMINATE = 0x00000001,
TBPF_NORMAL = 0x00000002,
TBPF_ERROR = 0x00000004,
TBPF_PAUSED = 0x00000008,
} TBPFLAG;
[
uuid(00000000-0000-0000-C000-000000000046),
version(1.0),
helpstring("IUnknown-Interface for Visual Basic"),
odl
]
interface IVBUnknown
{
long __stdcall QueryInterface([in] UUID* IID, [in,out] void* pObject);
long __stdcall AddRef();
long __stdcall Release();
};
[
uuid(000214F9-0000-0000-C000-000000000046),
version(1.0),
helpstring("IShellLinkW-Interface for Visual Basic"),
odl
]
interface IVBShellLinkW : IVBUnknown
{
long __stdcall GetPath([in,out] LPWSTR Path, [in] int Pathsize, [in,out] WIN32_FIND_DATAW *FileData, [in] SLGPConstants Flags);
long __stdcall GetIDList([in,out] long *pIDL);
long __stdcall SetIDList([in] long pIDL);
long __stdcall GetDescription([in,out] LPWSTR Descr, [in] int Buffersize);
long __stdcall SetDescription([in] LPWSTR Descr);
long __stdcall GetWorkingDirectory([in,out] LPWSTR WorkingDir, [in] int Buffersize);
long __stdcall SetWorkingDirectory([in] LPWSTR WorkingDir);
long __stdcall GetArguments([in,out] LPWSTR Args, [in] int Buffersize);
long __stdcall SetArguments([in] LPWSTR Args);
long __stdcall GetHotkey([in,out] short *Hotkey);
long __stdcall SetHotkey([in] short Hotkey);
long __stdcall GetShowCmd([in,out] int *ShowCmd);
long __stdcall SetShowCmd([in] int ShowCmd);
long __stdcall GetIconLocation([in,out] LPWSTR IconPath, [in] int IconPathSize, [in,out] int *iIcon);
long __stdcall SetIconLocation([in] LPWSTR IconPath, [in] int iIcon);
long __stdcall SetRelativePath([in] LPWSTR RelPath, [in] long reserviert);
long __stdcall Resolve([in] long hWnd, [in] SLRConstants Flags);
long __stdcall SetPath([in] LPWSTR Path);
};
[
uuid(43826D1E-E718-42EE-BC55-A1E261C37BFE),
version(1.0),
helpstring("IShellItem-Interface for Visual Basic"),
odl
]
interface IVBShellItem : IVBUnknown
{
long _stdcall BindToHandler([in] long pIBindCtx, [in] UUID* rbhid, [in] UUID* riid, [in, out] void* ppvOut);
long _stdcall GetParent([in, out] IVBShellItem** ppsi);
long _stdcall GetDisplayName([in] SIGDNConstants sigdnName, [in, out] LPWSTR* ppszName);
long _stdcall GetAttributes([in] SFGAOConstants sfgaoMask, [in, out] SFGAOConstants* psfgaoAttribs);
long _stdcall Compare([in] IVBShellItem* psi, [in] SICHINTConstants hint, [in, out] int* piOrder);
};
[
uuid(70629033-E363-4A28-A567-0DB78006E6D7),
version(1.0),
helpstring("IEnumShellItems-Interface for Visual Basic"),
odl
]
interface IVBEnumShellItems : IVBUnknown
{
long _stdcall Next([in] long Count, [in, out] IVBShellItem** Return, [in, out] long* Copied);
long _stdcall Skip([in] long Count);
long _stdcall Reset();
long _stdcall Clone([in, out] IVBEnumShellItems** pReturn);
};
[
uuid(787F8E92-9837-4011-9F83-7DE593BDC002),
version(1.0),
helpstring("IShellItemArray-Interface for Visual Basic"),
odl
]
interface IVBShellItemArray : IVBUnknown
{
HRESULT _stdcall BindToHandler([in] long pbc, [in] UUID* rbhid, [in] UUID* riid, [in, out] IVBUnknown** ppvOut);
HRESULT _stdcall GetAttributes([in] SIATTRIBFLAGSConstants dwAttribFlags, [in] SFGAOConstants sfgaoMask, [in, out] SFGAOConstants* psfgaoAttribs);
HRESULT _stdcall GetCount([in, out] long* pdwNumItems);
HRESULT _stdcall GetItemAt([in] long dwIndex, [in, out] IVBShellItem** ppsi);
HRESULT _stdcall EnumItems([in, out] IVBEnumShellItems** ppenumShellItems);
};
[
uuid(886D8EEB-8CF2-4446-8D02-CDBA1DBDCF99),
version(1.0),
helpstring("IPropertyStore for Visual Basic"),
odl
]
interface IVBPropertyStore : IVBUnknown
{
long __stdcall GetCount([in] long* cProps);
long __stdcall GetAt([in] long iProp, [in] PROPERTYKEY* pKey);
long __stdcall GetValue([in] PROPERTYKEY* key, [in,out] PROPVARIANT* pv);
long __stdcall SetValue([in] PROPERTYKEY* key, [in] PROPVARIANT* propvar);
long __stdcall Commit();
};
[
uuid(92CA9DCD-5622-4bba-A805-5E9F541BD8C9),
version(1.0),
helpstring("IObjectArray-Interface for Visual Basic"),
odl
]
interface IVBObjectArray : IVBUnknown
{
long __stdcall GetCount([out] long* pcObjects);
long __stdcall GetAt([in] long uiIndex, [in] UUID* riid, [in,out] void* ppv);
};
[
uuid(5632b1a4-e38a-400a-928a-d4cd63230295),
version(1.0),
helpstring("IObjectCollection-Interface for Visual Basic"),
odl
]
interface IVBObjectCollection : IVBObjectArray
{
long __stdcall AddObject([in] IVBUnknown* punk);
long __stdcall AddFromArray([in] IVBObjectArray* poaSource);
long __stdcall RemoveObjectAt([in] long uiIndex);
long __stdcall Clear();
};
[
uuid(6332debf-87b5-4670-90c0-5e57b408a49e),
version(1.0),
helpstring("ICustomDestinationList-Interface for Visual Basic"),
odl
]
interface IVBCustomDestinationList : IVBUnknown
{
long __stdcall SetAppID([in] long pszAppID);
long __stdcall BeginList([out] long* pcMinSlots, [in] UUID* riid, [in,out] void* ppv);
long __stdcall AppendCategory([in] long pszCategory, [in] IVBObjectArray* poa);
long __stdcall AppendKnownCategory([in] KNOWNDESTCATEGORYConstants category);
long __stdcall AddUserTasks([in] IVBObjectArray* poa);
long __stdcall CommitList();
long __stdcall GetRemovedDestinations([in] UUID* riid, [in,out] void* ppv);
long __stdcall DeleteList([in] long pszAppID);
long __stdcall AbortList();
};
[
uuid(ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf),
helpstring("ITaskbarList-Interface for Visual Basic"),
odl
]
interface IVBTaskbarList : IVBUnknown
{
long __stdcall HrInit();
long __stdcall AddTab([in] LONG hwnd);
long __stdcall DeleteTab([in] LONG hwnd);
long __stdcall ActivateTab([in] LONG hwnd);
long __stdcall SetActiveAlt([in] LONG hwnd);
long __stdcall MarkFullscreenWindow([in] LONG hwnd,[in] LONG fFullscreen);
long __stdcall SetProgressValue([in] LONG hwnd,[in] LONG ullCompleted_Low,[in] LONG ullCompleted_High,[in] LONG ullTotal_Low,[in] LONG ullTotal_High);
long __stdcall SetProgressState([in] LONG hwnd,[in] TBPFLAG tbpFlags);
long __stdcall RegisterTab([in] LONG hwndTab,[in] LONG hwndMDI);
long __stdcall UnregisterTab([in] LONG hwndTab);
long __stdcall SetTabOrder([in] LONG hwndTab,[in] LONG hwndInsertBefore);
long __stdcall SetTabActive([in] LONG hwndTab,[in] LONG hwndMDI,[in] LONG dwReserved);
long __stdcall ThumbBarAddButtons([in] LONG hwnd,[in] LONG cButtons,[in] LONG pButton);
long __stdcall ThumbBarUpdateButtons([in] LONG hwnd,[in] LONG cButtons,[in] LONG pButton);
long __stdcall ThumbBarSetImageList([in] LONG hwnd,[in] LONG himl);
long __stdcall SetOverlayIcon([in] LONG hwnd,[in] LONG hIcon,[in] LONG pszDescription);
long __stdcall SetThumbnailTooltip([in] LONG hwnd, [in] LONG pszTip);
long __stdcall SetThumbnailClip([in] LONG hwnd, [in] RECT *prcClip);
};
}