Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

61 lines
1.6 KiB

#ifndef _WCOMMOBJ_H_
#define _WCOMMOBJ_H_
#ifndef _SHELLP_H_
#include <shellp.h>
#endif
//
// common object helper stuff (not to be confused with OLE common object module)
//
//
typedef struct _WCommonKnown
{
IUnknown unk;
IUnknown *punkOuter;
} WCommonKnown, *PWCommonKnown;
typedef struct _WCommonUnknown
{
IUnknown unk;
UINT cRef;
const IID *riid;
WCommonKnown ck;
} WCommonUnknown, *PWCommonUnknown;
typedef struct _COMMINFO // cinfo
{
LPCTSTR pszContainer;
LPCTSTR pszSubObject;
LPCITEMIDLIST pidl;
const CLSID FAR* rclsid;
LPVOID lpData;
HWND hwndOwner;
} COMMINFO, * LPCOMMINFO;
typedef void (*COMMOBJ_DESTROYOBJECT)(LPVOID lpData);
typedef HRESULT (*COMMOBJ_CREATEINTERFACE)(IUnknown *punkOuter,
LPCOMMINFO lpcinfo, REFIID riid, IUnknown * *punkAgg);
typedef struct _COMMOBJ_OBJDESC
{
const IID *riid;
COMMOBJ_CREATEINTERFACE lpfnCreate;
} COMMOBJ_OBJDESC;
HRESULT STDMETHODCALLTYPE WCommonUnknown_QueryInterface(void * punk, REFIID riid, LPVOID * ppvObj);
ULONG STDMETHODCALLTYPE WCommonUnknown_AddRef(void * punk);
HRESULT STDMETHODCALLTYPE WCommonKnown_QueryInterface(void * punk, REFIID riid, LPVOID * ppvObj);
ULONG STDMETHODCALLTYPE WCommonKnown_AddRef(void * punk);
ULONG STDMETHODCALLTYPE WCommonKnown_Release(void * punk);
HRESULT Common_CreateObject(
LPCOMMINFO lpcinfo, COMMOBJ_DESTROYOBJECT lpfnDestroy,
const COMMOBJ_OBJDESC *lpObjDescs, UINT nObjs, REFIID riid, LPVOID *ppv);
HRESULT STDMETHODCALLTYPE Common_ESF_QueryInterface(void * punk, REFIID riid, LPVOID * ppvObj);
#endif // _WCOMMOBJ_H_