ReactOS 0.4.16-dev-2332-g4cba65d
compobj_private.h File Reference
#include <stdarg.h>
#include "wine/list.h"
#include "wine/heap.h"
#include "windef.h"
#include "winbase.h"
#include "wtypes.h"
#include "dcom.h"
#include "winreg.h"
#include "winternl.h"
Include dependency graph for compobj_private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  oletls
 

Macros

#define CHARS_IN_GUID   39 /* including NULL */
 

Functions

 DEFINE_OLEGUID (CLSID_DfMarshal, 0x0000030b, 0, 0)
 
void release_std_git (void)
 
HRESULT StdGlobalInterfaceTable_GetFactory (LPVOID *ppv)
 
HRESULT COM_OpenKeyForCLSID (REFCLSID clsid, LPCWSTR keyname, REGSAM access, HKEY *key)
 
HRESULT MARSHAL_GetStandardMarshalCF (LPVOID *ppv)
 
HRESULT FTMarshalCF_Create (REFIID riid, LPVOID *ppv)
 
void OLEDD_UnInitialize (void)
 
HRESULT WINAPI InternalTlsAllocData (struct oletls **tlsdata)
 
static struct oletlsCOM_CurrentInfo (void)
 
static struct apartmentCOM_CurrentApt (void)
 
HRESULT WINAPI OLE32_DllGetClassObject (REFCLSID rclsid, REFIID iid, LPVOID *ppv)
 
HRESULT WINAPI OLE32_DllRegisterServer (void)
 
HRESULT WINAPI OLE32_DllUnregisterServer (void)
 
HRESULT Handler_DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID *ppv)
 
HRESULT HandlerCF_Create (REFCLSID rclsid, REFIID riid, LPVOID *ppv)
 
HRESULT WINAPI GlobalOptions_CreateInstance (IClassFactory *iface, IUnknown *pUnk, REFIID riid, void **ppv)
 
HRESULT WINAPI GlobalInterfaceTable_CreateInstance (IClassFactory *iface, IUnknown *outer, REFIID riid, void **obj)
 
HRESULT WINAPI ManualResetEvent_CreateInstance (IClassFactory *iface, IUnknown *outer, REFIID riid, void **obj)
 
HRESULT WINAPI Ole32DllGetClassObject (REFCLSID clsid, REFIID riid, void **obj)
 
HRESULT DataAdviseHolder_OnConnect (IDataAdviseHolder *iface, IDataObject *pDelegate)
 
void DataAdviseHolder_OnDisconnect (IDataAdviseHolder *iface)
 
void clipbrd_destroy (void)
 
LSTATUS create_classes_key (HKEY, const WCHAR *, REGSAM, HKEY *)
 
LSTATUS open_classes_key (HKEY, const WCHAR *, REGSAM, HKEY *)
 
BOOL actctx_get_miscstatus (const CLSID *, DWORD, DWORD *)
 
const chardebugstr_formatetc (const FORMATETC *formatetc)
 
static HRESULT copy_formatetc (FORMATETC *dst, const FORMATETC *src)
 
HRESULT EnumSTATDATA_Construct (IUnknown *holder, ULONG index, DWORD array_len, STATDATA *data, BOOL copy, IEnumSTATDATA **ppenum)
 

Variables

HINSTANCE hProxyDll
 
IClassFactory GlobalOptionsCF
 
IClassFactory GlobalInterfaceTableCF
 
IClassFactory ManualResetEventCF
 
UINT ownerlink_clipboard_format
 
UINT filename_clipboard_format
 
UINT filenameW_clipboard_format
 
UINT dataobject_clipboard_format
 
UINT embedded_object_clipboard_format
 
UINT embed_source_clipboard_format
 
UINT custom_link_source_clipboard_format
 
UINT link_source_clipboard_format
 
UINT object_descriptor_clipboard_format
 
UINT link_source_descriptor_clipboard_format
 
UINT ole_private_data_clipboard_format
 

Macro Definition Documentation

◆ CHARS_IN_GUID

#define CHARS_IN_GUID   39 /* including NULL */

Definition at line 101 of file compobj_private.h.

Function Documentation

◆ actctx_get_miscstatus()

BOOL actctx_get_miscstatus ( const CLSID clsid,
DWORD  aspect,
DWORD status 
)

Definition at line 160 of file compobj.c.

161{
162 ACTCTX_SECTION_KEYED_DATA data;
163
164 data.cbSize = sizeof(data);
165 if (FindActCtxSectionGuid(0, NULL, ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION,
166 clsid, &data))
167 {
168 struct comclassredirect_data *comclass = (struct comclassredirect_data*)data.lpData;
170 ULONG miscmask = (comclass->flags >> 8) & 0xff;
171
172 if (!(miscmask & misc))
173 {
174 if (!(miscmask & MiscStatus))
175 {
176 *status = 0;
177 return TRUE;
178 }
179 misc = MiscStatus;
180 }
181
182 switch (misc)
183 {
184 case MiscStatus:
185 *status = comclass->miscstatus;
186 break;
187 case MiscStatusIcon:
188 *status = comclass->miscstatusicon;
189 break;
191 *status = comclass->miscstatuscontent;
192 break;
194 *status = comclass->miscstatusthumbnail;
195 break;
197 *status = comclass->miscstatusdocprint;
198 break;
199 default:
200 ;
201 };
202
203 return TRUE;
204 }
205 else
206 return FALSE;
207}
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
BOOL WINAPI FindActCtxSectionGuid(DWORD dwFlags, const GUID *lpExtGuid, ULONG ulId, const GUID *lpSearchGuid, PACTCTX_SECTION_KEYED_DATA pInfo)
Definition: actctx.c:265
comclass_miscfields
Definition: compobj.c:73
@ MiscStatusContent
Definition: compobj.c:76
@ MiscStatusThumbnail
Definition: compobj.c:77
@ MiscStatus
Definition: compobj.c:74
@ MiscStatusDocPrint
Definition: compobj.c:78
@ MiscStatusIcon
Definition: compobj.c:75
static enum comclass_miscfields dvaspect_to_miscfields(DWORD aspect)
Definition: compobj.c:143
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
const CLSID * clsid
Definition: msctf.cpp:50
DWORD miscstatuscontent
Definition: combase.c:71
DWORD miscstatusdocprint
Definition: combase.c:74
DWORD miscstatusthumbnail
Definition: combase.c:72
Definition: ps.c:97
uint32_t ULONG
Definition: typedefs.h:59

Referenced by OleRegGetMiscStatus().

◆ clipbrd_destroy()

void clipbrd_destroy ( void  )

Definition at line 2038 of file clipboard.c.

2039{
2040 ole_clipbrd *clipbrd = theOleClipboard;
2041
2042 if (!clipbrd) return;
2043
2045
2046 IStream_Release(clipbrd->marshal_data);
2047 HeapFree(GetProcessHeap(), 0, clipbrd);
2049}
#define GetProcessHeap()
Definition: compat.h:736
#define HeapFree(x, y, z)
Definition: compat.h:735
static ole_clipbrd * theOleClipboard
Definition: clipboard.c:173
void clipbrd_uninitialize(void)
Definition: clipboard.c:2009
IStream * marshal_data
Definition: clipboard.c:154

Referenced by DllMain().

◆ COM_CurrentApt()

static struct apartment * COM_CurrentApt ( void  )
inlinestatic

Definition at line 96 of file compobj_private.h.

97{
98 return COM_CurrentInfo()->apt;
99}
static struct oletls * COM_CurrentInfo(void)

Referenced by RegisterDragDrop().

◆ COM_CurrentInfo()

static struct oletls * COM_CurrentInfo ( void  )
inlinestatic

Definition at line 86 of file compobj_private.h.

87{
88 struct oletls *oletls;
89
90 if (!NtCurrentTeb()->ReservedForOle)
92
93 return NtCurrentTeb()->ReservedForOle;
94}
HRESULT WINAPI InternalTlsAllocData(struct oletls **tlsdata)
#define NtCurrentTeb

Referenced by CoGetState(), COM_CurrentApt(), CoSetState(), OleFlushClipboard(), OleInitialize(), OleSetClipboard(), and OleUninitialize().

◆ COM_OpenKeyForCLSID()

HRESULT COM_OpenKeyForCLSID ( REFCLSID  clsid,
LPCWSTR  keyname,
REGSAM  access,
HKEY key 
)

Definition at line 540 of file compobj.c.

541{
542 WCHAR path[CHARS_IN_GUID + ARRAY_SIZE(L"CLSID\\") - 1];
543 LONG res;
544 HKEY key;
545
546 lstrcpyW(path, L"CLSID\\");
550 return REGDB_E_CLASSNOTREG;
551 else if (res != ERROR_SUCCESS)
552 return REGDB_E_READREGDB;
553
554 if (!keyname)
555 {
556 *subkey = key;
557 return S_OK;
558 }
559
560 res = open_classes_key(key, keyname, access, subkey);
563 return REGDB_E_KEYMISSING;
564 else if (res != ERROR_SUCCESS)
565 return REGDB_E_READREGDB;
566
567 return S_OK;
568}
#define ARRAY_SIZE(A)
Definition: main.h:20
#define RegCloseKey(hKey)
Definition: registry.h:49
#define CHARS_IN_GUID
#define ERROR_SUCCESS
Definition: deptool.c:10
INT WINAPI StringFromGUID2(REFGUID guid, LPOLESTR str, INT cmax)
Definition: combase.c:1525
#define lstrcpyW
Definition: compat.h:749
#define lstrlenW
Definition: compat.h:750
LSTATUS open_classes_key(HKEY hkey, const WCHAR *name, REGSAM access, HKEY *retkey)
Definition: compobj.c:328
#define L(x)
Definition: resources.c:13
GLuint res
Definition: glext.h:9613
GLuint GLint GLboolean GLint GLenum access
Definition: glext.h:7866
#define S_OK
Definition: intsafe.h:52
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define KEY_READ
Definition: nt_native.h:1026
long LONG
Definition: pedump.c:60
Definition: copy.c:22
#define REGDB_E_CLASSNOTREG
Definition: winerror.h:3801
#define REGDB_E_READREGDB
Definition: winerror.h:3797
#define REGDB_E_KEYMISSING
Definition: winerror.h:3799
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by CoTreatAsClass(), Handler_DllGetClassObject(), OleGetAutoConvert(), OleRegEnumVerbs(), OleRegGetMiscStatus(), OleRegGetUserType(), and OleSetAutoConvert().

◆ copy_formatetc()

static HRESULT copy_formatetc ( FORMATETC *  dst,
const FORMATETC *  src 
)
inlinestatic

Definition at line 148 of file compobj_private.h.

149{
150 *dst = *src;
151 if (src->ptd)
152 {
153 dst->ptd = CoTaskMemAlloc( src->ptd->tdSize );
154 if (!dst->ptd) return E_OUTOFMEMORY;
155 memcpy( dst->ptd, src->ptd, src->ptd->tdSize );
156 }
157 return S_OK;
158}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340
void *WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: malloc.c:381
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878

Referenced by copy_statdata(), DataCache_EnumCache(), init_cache_entry(), and OLEClipbrd_IEnumFORMATETC_Next().

◆ create_classes_key()

LSTATUS create_classes_key ( HKEY  hkey,
const WCHAR name,
REGSAM  access,
HKEY retkey 
)

Definition at line 306 of file compobj.c.

307{
310
311 if (!(hkey = get_classes_root_hkey( hkey, access ))) return ERROR_INVALID_HANDLE;
312
313 attr.Length = sizeof(attr);
314 attr.RootDirectory = hkey;
315 attr.ObjectName = &nameW;
316#ifdef __REACTOS__
317 attr.Attributes = OBJ_CASE_INSENSITIVE;
318#else
319 attr.Attributes = 0;
320#endif
321 attr.SecurityDescriptor = NULL;
322 attr.SecurityQualityOfService = NULL;
324
325 return RtlNtStatusToDosError( create_key( retkey, access, &attr ) );
326}
static const WCHAR nameW[]
Definition: main.c:49
#define ERROR_INVALID_HANDLE
Definition: compat.h:98
static HKEY get_classes_root_hkey(HKEY hkey, REGSAM access)
Definition: compobj.c:286
static NTSTATUS create_key(HKEY *retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr)
Definition: compobj.c:210
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define OBJ_CASE_INSENSITIVE
Definition: winternl.h:228
Definition: cookie.c:202
Definition: name.c:39
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)

Referenced by get_classes_root_hkey().

◆ DataAdviseHolder_OnConnect()

HRESULT DataAdviseHolder_OnConnect ( IDataAdviseHolder iface,
IDataObject pDelegate 
)

Definition at line 805 of file oleobj.c.

806{
808 DWORD index;
809 HRESULT hr = S_OK;
810
811 for(index = 0; index < This->maxCons; index++)
812 {
813 if(This->connections[index].pAdvSink != NULL)
814 {
815 hr = IDataObject_DAdvise(pDelegate, &This->connections[index].formatetc,
816 This->connections[index].advf,
817 This->connections[index].pAdvSink,
818 &This->remote_connections[index]);
819 if (FAILED(hr)) break;
820 This->connections[index].advf |= WINE_ADVF_REMOTE;
821 }
822 }
823 This->delegate = pDelegate;
824 return hr;
825}
#define index(s, c)
Definition: various.h:29
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint index
Definition: glext.h:6031
#define FAILED(hr)
Definition: intsafe.h:51
#define WINE_ADVF_REMOTE
Definition: oleobj.c:542
static DataAdviseHolder * impl_from_IDataAdviseHolder(IDataAdviseHolder *iface)
Definition: oleobj.c:544
HRESULT hr
Definition: shlfolder.c:183

Referenced by DefaultHandler_DAdvise(), and DefaultHandler_Run().

◆ DataAdviseHolder_OnDisconnect()

void DataAdviseHolder_OnDisconnect ( IDataAdviseHolder iface)

Definition at line 827 of file oleobj.c.

828{
830 DWORD index;
831
832 for(index = 0; index < This->maxCons; index++)
833 {
834 if((This->connections[index].pAdvSink != NULL) &&
835 (This->connections[index].advf & WINE_ADVF_REMOTE))
836 {
837 IDataObject_DUnadvise(This->delegate, This->remote_connections[index]);
838 This->remote_connections[index] = 0;
839 This->connections[index].advf &= ~WINE_ADVF_REMOTE;
840 }
841 }
842 This->delegate = NULL;
843}

Referenced by DefaultHandler_Stop().

◆ debugstr_formatetc()

const char * debugstr_formatetc ( const FORMATETC *  formatetc)

Definition at line 214 of file datacache.c.

215{
216 return wine_dbg_sprintf("{ cfFormat = 0x%x, ptd = %p, dwAspect = %ld, lindex = %ld, tymed = %ld }",
217 formatetc->cfFormat, formatetc->ptd, formatetc->dwAspect,
218 formatetc->lindex, formatetc->tymed);
219}
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296

Referenced by add_cache_entry(), DataCache_Cache(), DataCache_GetData(), DataCache_IOleCache2_SetData(), DataCache_OnDataChange(), DataCache_QueryGetData(), DataCacheEntry_Save(), and OleCreateFromFileEx().

◆ DEFINE_OLEGUID()

DEFINE_OLEGUID ( CLSID_DfMarshal  ,
0x0000030b  ,
,
 
)

◆ EnumSTATDATA_Construct()

HRESULT EnumSTATDATA_Construct ( IUnknown holder,
ULONG  index,
DWORD  array_len,
STATDATA *  data,
BOOL  copy,
IEnumSTATDATA **  ppenum 
)

Definition at line 195 of file oleobj.c.

197{
198 EnumSTATDATA *This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
199 DWORD i, count;
200
201 if (!This) return E_OUTOFMEMORY;
202
203 This->IEnumSTATDATA_iface.lpVtbl = &EnumSTATDATA_VTable;
204 This->ref = 1;
205 This->index = index;
206
207 if (copy)
208 {
209 This->statdata = HeapAlloc(GetProcessHeap(), 0, array_len * sizeof(*This->statdata));
210 if(!This->statdata)
211 {
213 return E_OUTOFMEMORY;
214 }
215
216 for(i = 0, count = 0; i < array_len; i++)
217 {
218 if(data[i].pAdvSink)
219 {
220 copy_statdata(This->statdata + count, data + i);
221 count++;
222 }
223 }
224 }
225 else
226 {
227 This->statdata = data;
228 count = array_len;
229 }
230
231 This->num_of_elems = count;
232 This->holder = holder;
233 if (holder) IUnknown_AddRef(holder);
234 *ppenum = &This->IEnumSTATDATA_iface;
235 return S_OK;
236}
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
Definition: copy.c:51
#define HeapAlloc
Definition: compat.h:733
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static HRESULT copy_statdata(STATDATA *dst, const STATDATA *src)
Definition: oleobj.c:52
static const IEnumSTATDATAVtbl EnumSTATDATA_VTable
Definition: oleobj.c:184

Referenced by DataAdviseHolder_EnumAdvise(), DataCache_EnumCache(), EnumSTATDATA_Clone(), and OleAdviseHolderImpl_EnumAdvise().

◆ FTMarshalCF_Create()

HRESULT FTMarshalCF_Create ( REFIID  riid,
LPVOID ppv 
)

Definition at line 99 of file ftmarshal.c.

100{
101 return IClassFactory_QueryInterface((IClassFactory *)&FTMarshalCF, riid, ppv);
102}
static const IClassFactoryVtbl * FTMarshalCF
Definition: ftmarshal.c:97
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39

Referenced by Ole32DllGetClassObject().

◆ GlobalInterfaceTable_CreateInstance()

HRESULT WINAPI GlobalInterfaceTable_CreateInstance ( IClassFactory iface,
IUnknown outer,
REFIID  riid,
void **  obj 
)

Definition at line 303 of file git.c.

304{
306
307 if (!std_git)
308 {
309 git = malloc(sizeof(*git));
310 if (!git) return E_OUTOFMEMORY;
311
313 list_init(&git->list);
314 git->nextCookie = 0xf100; /* that's where windows starts, so that's where we start */
315
317 {
318 free(git);
319 }
320 else
321 TRACE("Created the GIT %p\n", git);
322 }
323
324 return IGlobalInterfaceTable_QueryInterface(std_git, riid, obj);
325}
static void list_init(struct list_entry *head)
Definition: list.h:51
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
static IGlobalInterfaceTable * std_git
Definition: git.c:72
static const IGlobalInterfaceTableVtbl StdGlobalInterfaceTableImpl_Vtbl
Definition: git.c:293
#define InterlockedCompareExchangePointer
Definition: interlocked.h:144
#define TRACE(s)
Definition: solgame.cpp:4
struct list list
Definition: git.c:67
IGlobalInterfaceTable IGlobalInterfaceTable_iface
Definition: git.c:65

◆ GlobalOptions_CreateInstance()

HRESULT WINAPI GlobalOptions_CreateInstance ( IClassFactory iface,
IUnknown pUnk,
REFIID  riid,
void **  ppv 
)

◆ Handler_DllGetClassObject()

HRESULT Handler_DllGetClassObject ( REFCLSID  rclsid,
REFIID  riid,
LPVOID ppv 
)

Definition at line 911 of file compobj.c.

912{
913 HKEY hkey;
915
916 hres = COM_OpenKeyForCLSID(rclsid, L"InprocHandler32", KEY_READ, &hkey);
917 if (SUCCEEDED(hres))
918 {
919 struct class_reg_data regdata;
921
922 regdata.u.hkey = hkey;
923 regdata.origin = CLASS_REG_REGISTRY;
924
926 {
927 if (!wcsicmp(dllpath, L"ole32.dll"))
928 {
930 return HandlerCF_Create(rclsid, riid, ppv);
931 }
932 }
933 else
934 WARN("not creating object for inproc handler path %s\n", debugstr_w(dllpath));
936 }
937
939}
#define WARN(fmt,...)
Definition: precomp.h:61
HRESULT HandlerCF_Create(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
#define MAX_PATH
Definition: compat.h:34
#define wcsicmp
Definition: compat.h:15
static BOOL get_object_dll_path(const struct class_reg_data *regdata, WCHAR *dst, DWORD dstlen)
Definition: compobj.c:870
@ CLASS_REG_REGISTRY
Definition: compobj.c:125
HRESULT COM_OpenKeyForCLSID(REFCLSID clsid, LPCWSTR keyname, REGSAM access, HKEY *subkey)
Definition: compobj.c:540
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define debugstr_w
Definition: kernel32.h:32
WCHAR dllpath[MAX_PATH]
HRESULT hres
Definition: protocol.c:465
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:3772

Referenced by DllGetClassObject().

◆ HandlerCF_Create()

HRESULT HandlerCF_Create ( REFCLSID  rclsid,
REFIID  riid,
LPVOID ppv 
)

Definition at line 2352 of file defaulthandler.c.

2353{
2354 HRESULT hr;
2355 HandlerCF *This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
2356 if (!This) return E_OUTOFMEMORY;
2357 This->IClassFactory_iface.lpVtbl = &HandlerClassFactoryVtbl;
2358 This->refs = 0;
2359 This->clsid = *rclsid;
2360
2361 hr = IClassFactory_QueryInterface(&This->IClassFactory_iface, riid, ppv);
2362 if (FAILED(hr))
2364
2365 return hr;
2366}
static const IClassFactoryVtbl HandlerClassFactoryVtbl

Referenced by Handler_DllGetClassObject().

◆ InternalTlsAllocData()

HRESULT WINAPI InternalTlsAllocData ( struct oletls **  tlsdata)

Referenced by COM_CurrentInfo().

◆ ManualResetEvent_CreateInstance()

HRESULT WINAPI ManualResetEvent_CreateInstance ( IClassFactory iface,
IUnknown outer,
REFIID  riid,
void **  obj 
)

Definition at line 481 of file compobj.c.

482{
484 HRESULT hr;
485
486 if (outer)
487 FIXME("Aggregation not implemented.\n");
488
489 This->ref = 1;
490 This->ISynchronize_iface.lpVtbl = &vt_ISynchronize;
491 This->ISynchronizeHandle_iface.lpVtbl = &SynchronizeHandleVtbl;
492 This->event = CreateEventW(NULL, TRUE, FALSE, NULL);
493
494 hr = ISynchronize_QueryInterface(&This->ISynchronize_iface, iid, ppv);
495 ISynchronize_Release(&This->ISynchronize_iface);
496 return hr;
497}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
static ISynchronizeVtbl vt_ISynchronize
Definition: compobj.c:434
static const ISynchronizeHandleVtbl SynchronizeHandleVtbl
Definition: compobj.c:474
static IUnknown * outer
Definition: compobj.c:82
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
Definition: synch.c:587

◆ MARSHAL_GetStandardMarshalCF()

HRESULT MARSHAL_GetStandardMarshalCF ( LPVOID ppv)

Definition at line 92 of file marshal.c.

93{
94 *ppv = &StdMarshalCF;
95 return S_OK;
96}
static const IClassFactoryVtbl * StdMarshalCF
Definition: marshal.c:90

Referenced by DllGetClassObject().

◆ OLE32_DllGetClassObject()

HRESULT WINAPI OLE32_DllGetClassObject ( REFCLSID  rclsid,
REFIID  iid,
LPVOID ppv 
)

Referenced by DllGetClassObject().

◆ OLE32_DllRegisterServer()

HRESULT WINAPI OLE32_DllRegisterServer ( void  )

Referenced by DllRegisterServer().

◆ OLE32_DllUnregisterServer()

HRESULT WINAPI OLE32_DllUnregisterServer ( void  )

Referenced by DllUnregisterServer().

◆ Ole32DllGetClassObject()

HRESULT WINAPI Ole32DllGetClassObject ( REFCLSID  clsid,
REFIID  riid,
void **  obj 
)

Definition at line 229 of file oleproxy.c.

230{
232 return IClassFactory_QueryInterface(&GlobalInterfaceTableCF, riid, obj);
233 else if (IsEqualCLSID(rclsid, &CLSID_ManualResetEvent))
234 return IClassFactory_QueryInterface(&ManualResetEventCF, riid, obj);
235 else if (IsEqualCLSID(rclsid, &CLSID_InProcFreeMarshaler))
236 return FTMarshalCF_Create(riid, obj);
237 else
239}
const CLSID CLSID_ManualResetEvent
const CLSID CLSID_InProcFreeMarshaler
const CLSID CLSID_StdGlobalInterfaceTable
HRESULT FTMarshalCF_Create(REFIID riid, LPVOID *ppv)
Definition: ftmarshal.c:99
IClassFactory GlobalInterfaceTableCF
Definition: oleproxy.c:171
IClassFactory ManualResetEventCF
Definition: oleproxy.c:182
#define IsEqualCLSID(rclsid1, rclsid2)
Definition: guiddef.h:96

◆ OLEDD_UnInitialize()

void OLEDD_UnInitialize ( void  )

◆ open_classes_key()

LSTATUS open_classes_key ( HKEY  hkey,
const WCHAR name,
REGSAM  access,
HKEY retkey 
)

Definition at line 328 of file compobj.c.

329{
332
333 if (!(hkey = get_classes_root_hkey( hkey, access ))) return ERROR_INVALID_HANDLE;
334
335 attr.Length = sizeof(attr);
336 attr.RootDirectory = hkey;
337 attr.ObjectName = &nameW;
338#ifdef __REACTOS__
339 attr.Attributes = OBJ_CASE_INSENSITIVE;
340#else
341 attr.Attributes = 0;
342#endif
343 attr.SecurityDescriptor = NULL;
344 attr.SecurityQualityOfService = NULL;
346
347 return RtlNtStatusToDosError( NtOpenKey( (HANDLE *)retkey, access, &attr ) );
348}
NTSYSAPI NTSTATUS NTAPI NtOpenKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
Definition: ntapi.c:336

Referenced by COM_OpenKeyForCLSID().

◆ release_std_git()

void release_std_git ( void  )

Definition at line 327 of file git.c.

328{
330 StdGITEntry *entry, *entry2;
331
332 if (!std_git) return;
333
336 {
337 list_remove(&entry->entry);
338
340 IStream_Release(entry->stream);
341 free(entry);
342 }
343
344 free(git);
345}
static void list_remove(struct list_entry *entry)
Definition: list.h:90
HRESULT WINAPI CoReleaseMarshalData(IStream *stream)
Definition: marshal.c:673
static StdGlobalInterfaceTableImpl * impl_from_IGlobalInterfaceTable(IGlobalInterfaceTable *iface)
Definition: git.c:84
uint32_t entry
Definition: isohybrid.c:63
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
Definition: list.h:204

Referenced by DllMain().

◆ StdGlobalInterfaceTable_GetFactory()

HRESULT StdGlobalInterfaceTable_GetFactory ( LPVOID ppv)

Variable Documentation

◆ custom_link_source_clipboard_format

UINT custom_link_source_clipboard_format
extern

Definition at line 195 of file clipboard.c.

Referenced by register_clipboard_formats().

◆ dataobject_clipboard_format

UINT dataobject_clipboard_format
extern

◆ embed_source_clipboard_format

UINT embed_source_clipboard_format
extern

◆ embedded_object_clipboard_format

UINT embedded_object_clipboard_format
extern

Definition at line 193 of file clipboard.c.

Referenced by get_storage(), OleQueryCreateFromData(), and register_clipboard_formats().

◆ filename_clipboard_format

UINT filename_clipboard_format
extern

Definition at line 190 of file clipboard.c.

Referenced by OleQueryCreateFromData(), and register_clipboard_formats().

◆ filenameW_clipboard_format

UINT filenameW_clipboard_format
extern

Definition at line 191 of file clipboard.c.

Referenced by register_clipboard_formats().

◆ GlobalInterfaceTableCF

IClassFactory GlobalInterfaceTableCF
extern

Definition at line 171 of file oleproxy.c.

Referenced by DllGetClassObject(), and Ole32DllGetClassObject().

◆ GlobalOptionsCF

IClassFactory GlobalOptionsCF
extern

◆ hProxyDll

◆ link_source_clipboard_format

UINT link_source_clipboard_format
extern

Definition at line 196 of file clipboard.c.

Referenced by register_clipboard_formats().

◆ link_source_descriptor_clipboard_format

UINT link_source_descriptor_clipboard_format
extern

Definition at line 198 of file clipboard.c.

Referenced by register_clipboard_formats().

◆ ManualResetEventCF

IClassFactory ManualResetEventCF
extern

Definition at line 182 of file oleproxy.c.

Referenced by DllGetClassObject(), and Ole32DllGetClassObject().

◆ object_descriptor_clipboard_format

UINT object_descriptor_clipboard_format
extern

Definition at line 197 of file clipboard.c.

Referenced by register_clipboard_formats().

◆ ole_private_data_clipboard_format

UINT ole_private_data_clipboard_format
extern

Definition at line 199 of file clipboard.c.

Referenced by get_priv_data(), register_clipboard_formats(), and set_clipboard_formats().

◆ ownerlink_clipboard_format

UINT ownerlink_clipboard_format
extern

Definition at line 189 of file clipboard.c.

Referenced by register_clipboard_formats().