mirror of
https://github.com/reactos/reactos.git
synced 2026-06-18 13:04:07 +08:00
[SDK] Enhance <shlobj_undoc.h> more (#9089)
Implementing missing features... JIRA issue: CORE-20467 - Add IPersistString2, IObjectWithRegistryKeyOld, and IObjectWithRegistryKey interfaces into <shlobj_undoc.h>. - Add some IIDs into <shlguid_undoc.h>. - Add missing PUREs in <shlobj_undoc.h>.
This commit is contained in:
committed by
GitHub
parent
678d0e2cda
commit
f3ca62ae97
@@ -217,6 +217,8 @@ DEFINE_GUID(POLID_ModRiskFileTypes, 0xECF9040B, 0xF38C, 0x44FE,
|
||||
DEFINE_GUID(POLID_LowRiskFileTypes, 0xECF9040C, 0xF38C, 0x44FE, 0x9F, 0x1B, 0x02, 0xA7, 0x2B, 0xAF, 0x60, 0x3C);
|
||||
DEFINE_GUID(POLID_PreXPSP2ShellProtocolBehavior, 0x4FC60822, 0x47AF, 0x4BEE, 0xA7, 0xDA, 0xC9, 0x9A, 0x6E, 0x8E, 0x5D, 0x8D);
|
||||
DEFINE_GUID(POLID_CompareJunctionness, 0xB3AB7D3B, 0x698F, 0x401E, 0xBF, 0x89, 0x30, 0x02, 0x33, 0x35, 0xA2, 0x67);
|
||||
DEFINE_GUID(IID_IObjectWithRegistryKeyOld, 0x5747C63F, 0x1DE8, 0x423F, 0x98, 0x0F, 0x00, 0xCB, 0x07, 0xF4, 0xC4, 0x5B);
|
||||
DEFINE_GUID(IID_IObjectWithRegistryKey, 0xD960050C, 0xF4E1, 0x4294, 0xAC, 0x4B, 0x59, 0x89, 0x13, 0x60, 0x59, 0x23);
|
||||
|
||||
#define CGID_IExplorerToolbar IID_IExplorerToolbar
|
||||
#define SID_IExplorerToolbar IID_IExplorerToolbar
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <winreg.h> /* REGSAM */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -879,14 +881,14 @@ DECLARE_INTERFACE_(IQuerySourceOld, IUnknown) // {C7478486-7583-49E7-A6C2-FAF8F0
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IQuerySourceOld ***/
|
||||
STDMETHOD(EnumValues)(THIS_ IEnumString **ppEnum);
|
||||
STDMETHOD(EnumSources)(THIS_ IEnumString **ppEnum);
|
||||
STDMETHOD(QueryValueString)(THIS_ PCWSTR keyName, PCWSTR valueName, PWSTR *ppszValue);
|
||||
STDMETHOD(QueryValueDword)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD *pdwValue);
|
||||
STDMETHOD(QueryValueExists)(THIS_ PCWSTR keyName, PCWSTR valueName);
|
||||
STDMETHOD(QueryValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, FLAGGED_BYTE_BLOB **ppBlob);
|
||||
STDMETHOD(OpenSource)(THIS_ PCWSTR keyName, BOOL, IQuerySourceOld **ppSource);
|
||||
STDMETHOD(SetValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD, DWORD, PBYTE);
|
||||
STDMETHOD(EnumValues)(THIS_ IEnumString **ppEnum) PURE;
|
||||
STDMETHOD(EnumSources)(THIS_ IEnumString **ppEnum) PURE;
|
||||
STDMETHOD(QueryValueString)(THIS_ PCWSTR keyName, PCWSTR valueName, PWSTR *ppszValue) PURE;
|
||||
STDMETHOD(QueryValueDword)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD *pdwValue) PURE;
|
||||
STDMETHOD(QueryValueExists)(THIS_ PCWSTR keyName, PCWSTR valueName) PURE;
|
||||
STDMETHOD(QueryValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, FLAGGED_BYTE_BLOB **ppBlob) PURE;
|
||||
STDMETHOD(OpenSource)(THIS_ PCWSTR keyName, BOOL bCreate, IQuerySourceOld **ppSource) PURE;
|
||||
STDMETHOD(SetValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD, DWORD, PBYTE) PURE;
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
@@ -918,14 +920,14 @@ DECLARE_INTERFACE_(IQuerySource, IUnknown) // {7BC28AC2-0D9C-4941-BB9A-72BECB184
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IQuerySource ***/
|
||||
STDMETHOD(EnumValues)(THIS_ IEnumString **ppEnum);
|
||||
STDMETHOD(QueryValueString)(THIS_ PCWSTR keyName, PCWSTR valueName, PWSTR *ppszValue);
|
||||
STDMETHOD(QueryValueDword)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD *pdwValue);
|
||||
STDMETHOD(QueryValueGuid)(THIS_ PCWSTR keyName, PCWSTR valueName, GUID *guid);
|
||||
STDMETHOD(QueryValueExists)(THIS_ PCWSTR keyName, PCWSTR valueName);
|
||||
STDMETHOD(QueryValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, FLAGGED_BYTE_BLOB **ppBlob);
|
||||
STDMETHOD(EnumSources)(THIS_ IEnumString **ppEnum);
|
||||
STDMETHOD(OpenSource)(THIS_ PCWSTR keyName, IQuerySource **ppSource);
|
||||
STDMETHOD(EnumValues)(THIS_ IEnumString **ppEnum) PURE;
|
||||
STDMETHOD(QueryValueString)(THIS_ PCWSTR keyName, PCWSTR valueName, PWSTR *ppszValue) PURE;
|
||||
STDMETHOD(QueryValueDword)(THIS_ PCWSTR keyName, PCWSTR valueName, DWORD *pdwValue) PURE;
|
||||
STDMETHOD(QueryValueGuid)(THIS_ PCWSTR keyName, PCWSTR valueName, GUID *guid) PURE;
|
||||
STDMETHOD(QueryValueExists)(THIS_ PCWSTR keyName, PCWSTR valueName) PURE;
|
||||
STDMETHOD(QueryValueDirect)(THIS_ PCWSTR keyName, PCWSTR valueName, FLAGGED_BYTE_BLOB **ppBlob) PURE;
|
||||
STDMETHOD(EnumSources)(THIS_ IEnumString **ppEnum) PURE;
|
||||
STDMETHOD(OpenSource)(THIS_ PCWSTR keyName, IQuerySource **ppSource) PURE;
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
@@ -956,8 +958,8 @@ DECLARE_INTERFACE_(IObjectWithQuerySource, IUnknown) // {B3DCB623-4280-4EB1-84B3
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IObjectWithQuerySource ***/
|
||||
STDMETHOD(SetSource)(THIS_ IQuerySource *pSource);
|
||||
STDMETHOD(GetSource)(THIS_ REFIID riid, PVOID *ppSource);
|
||||
STDMETHOD(SetSource)(THIS_ IQuerySource *pSource) PURE;
|
||||
STDMETHOD(GetSource)(THIS_ REFIID riid, PVOID *ppSource) PURE;
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
@@ -1150,9 +1152,9 @@ DECLARE_INTERFACE_(IAssociationArrayInitialize, IUnknown) // {EE9165BF-A4D9-474B
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IAssociationArrayInitialize ***/
|
||||
STDMETHOD(InitClassElements)(ULONG flags, PCWSTR pszClass);
|
||||
STDMETHOD(InsertElements)(ULONG flags, IEnumAssociationElements *pEnum);
|
||||
STDMETHOD(FilterElements)(ULONG filter);
|
||||
STDMETHOD(InitClassElements)(ULONG flags, PCWSTR pszClass) PURE;
|
||||
STDMETHOD(InsertElements)(ULONG flags, IEnumAssociationElements *pEnum) PURE;
|
||||
STDMETHOD(FilterElements)(ULONG filter) PURE;
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
@@ -1165,6 +1167,89 @@ DECLARE_INTERFACE_(IAssociationArrayInitialize, IUnknown) // {EE9165BF-A4D9-474B
|
||||
#define IAssociationArrayInitialize_FilterElements(T,a) (T)->lpVtbl->FilterElements(T,a)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* IPersistString2 interface
|
||||
*
|
||||
* @sse IPersist
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shell32/interfaces/ipersiststring2.htm
|
||||
*/
|
||||
#define INTERFACE IPersistString2
|
||||
DECLARE_INTERFACE_(IPersistString2, IPersist) // {3C44BA76-DE0E-4049-B6E4-6B31A5262707}
|
||||
{
|
||||
/*** IUnknown ***/
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IPersist ***/
|
||||
STDMETHOD(GetClassID)(THIS_ CLSID *pClassID) PURE;
|
||||
/*** IPersistString2 ***/
|
||||
STDMETHOD(SetString)(THIS_ PCWSTR psz) PURE;
|
||||
STDMETHOD(GetString)(THIS_ PWSTR *ppsz) PURE;
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
#ifdef COBJMACROS
|
||||
#define IPersistString2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
|
||||
#define IPersistString2_AddRef(T) (T)->lpVtbl->AddRef(T)
|
||||
#define IPersistString2_Release(T) (T)->lpVtbl->Release(T)
|
||||
#define IPersistString2_SetString(T,a) (T)->lpVtbl->SetString(T,a)
|
||||
#define IPersistString2_GetString(T,a) (T)->lpVtbl->GetString(T,a)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* IObjectWithRegistryKeyOld interface
|
||||
*
|
||||
* @see IObjectWithRegistryKey
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iobjectwithregistrykey.htm
|
||||
*/
|
||||
#define INTERFACE IObjectWithRegistryKeyOld
|
||||
DECLARE_INTERFACE_(IObjectWithRegistryKeyOld, IUnknown) // {5747C63F-1DE8-423F-980F-00CB07F4C45B}
|
||||
{
|
||||
/*** IUnknown ***/
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IObjectWithRegistryKeyOld ***/
|
||||
STDMETHOD(SetKey)(THIS_ HKEY hKey) PURE;
|
||||
STDMETHOD(GetKey)(THIS_ HKEY *phKey) PURE;
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
#ifdef COBJMACROS
|
||||
#define IObjectWithRegistryKeyOld_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
|
||||
#define IObjectWithRegistryKeyOld_AddRef(T) (T)->lpVtbl->AddRef(T)
|
||||
#define IObjectWithRegistryKeyOld_Release(T) (T)->lpVtbl->Release(T)
|
||||
#define IObjectWithRegistryKeyOld_SetKey(T,a) (T)->lpVtbl->SetKey(T,a)
|
||||
#define IObjectWithRegistryKeyOld_GetKey(T,a) (T)->lpVtbl->GetKey(T,a)
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* IObjectWithRegistryKey interface (new version)
|
||||
*
|
||||
* @see IObjectWithRegistryKeyOld
|
||||
* @see https://www.geoffchappell.com/studies/windows/shell/shlwapi/interfaces/iobjectwithregistrykey.htm
|
||||
*/
|
||||
#define INTERFACE IObjectWithRegistryKey
|
||||
DECLARE_INTERFACE_(IObjectWithRegistryKey, IUnknown) // {D960050C-F4E1-4294-AC4B-598913605923}
|
||||
{
|
||||
/*** IUnknown ***/
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
|
||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
||||
/*** IObjectWithRegistryKey ***/
|
||||
STDMETHOD(SetKey)(THIS_ HKEY hKey) PURE;
|
||||
STDMETHOD(GetKey)(THIS_ REGSAM samDesired, HKEY *phKey) PURE;
|
||||
};
|
||||
#undef INTERFACE
|
||||
|
||||
#ifdef COBJMACROS
|
||||
#define IObjectWithRegistryKey_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
|
||||
#define IObjectWithRegistryKey_AddRef(T) (T)->lpVtbl->AddRef(T)
|
||||
#define IObjectWithRegistryKey_Release(T) (T)->lpVtbl->Release(T)
|
||||
#define IObjectWithRegistryKey_SetKey(T,a) (T)->lpVtbl->SetKey(T,a)
|
||||
#define IObjectWithRegistryKey_GetKey(T,a) (T)->lpVtbl->GetKey(T,a)
|
||||
#endif
|
||||
|
||||
HANDLE WINAPI SHCreateDesktop(IShellDesktopTray*);
|
||||
BOOL WINAPI SHDesktopMessageLoop(HANDLE);
|
||||
HRESULT WINAPI SHCreateFileDataObject(PCIDLIST_ABSOLUTE pidlFolder, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, IDataObject* pDataInner, IDataObject** ppDataObj);
|
||||
|
||||
Reference in New Issue
Block a user