Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenoleproxy.c
Go to the documentation of this file.
00001 /* 00002 * OLE32 proxy/stub handler 00003 * 00004 * Copyright 2002 Marcus Meissner 00005 * Copyright 2001 Ove Kåven, TransGaming Technologies 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2.1 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with this library; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00020 */ 00021 00022 #include "config.h" 00023 00024 #include <stdlib.h> 00025 #include <stdarg.h> 00026 #include <stdio.h> 00027 #include <string.h> 00028 00029 #define COBJMACROS 00030 #define NONAMELESSUNION 00031 #define NONAMELESSSTRUCT 00032 00033 #include "windef.h" 00034 #include "winbase.h" 00035 #include "winuser.h" 00036 #include "objbase.h" 00037 #include "ole2.h" 00038 #include "rpc.h" 00039 00040 #include "compobj_private.h" 00041 #include "moniker.h" 00042 #include "comcat.h" 00043 00044 /*********************************************************************** 00045 * DllGetClassObject [OLE32.@] 00046 */ 00047 HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid,LPVOID *ppv) 00048 { 00049 HRESULT hr; 00050 00051 *ppv = NULL; 00052 if (IsEqualIID(rclsid,&CLSID_DfMarshal)&&( 00053 IsEqualIID(iid,&IID_IClassFactory) || 00054 IsEqualIID(iid,&IID_IUnknown) 00055 ) 00056 ) 00057 return MARSHAL_GetStandardMarshalCF(ppv); 00058 if (IsEqualIID(rclsid,&CLSID_StdGlobalInterfaceTable) && (IsEqualIID(iid,&IID_IClassFactory) || IsEqualIID(iid,&IID_IUnknown))) 00059 return StdGlobalInterfaceTable_GetFactory(ppv); 00060 if (IsEqualCLSID(rclsid, &CLSID_FileMoniker)) 00061 return FileMonikerCF_Create(iid, ppv); 00062 if (IsEqualCLSID(rclsid, &CLSID_ItemMoniker)) 00063 return ItemMonikerCF_Create(iid, ppv); 00064 if (IsEqualCLSID(rclsid, &CLSID_AntiMoniker)) 00065 return AntiMonikerCF_Create(iid, ppv); 00066 if (IsEqualCLSID(rclsid, &CLSID_CompositeMoniker)) 00067 return CompositeMonikerCF_Create(iid, ppv); 00068 if (IsEqualCLSID(rclsid, &CLSID_ClassMoniker)) 00069 return ClassMonikerCF_Create(iid, ppv); 00070 if (IsEqualCLSID(rclsid, &CLSID_PointerMoniker)) 00071 return PointerMonikerCF_Create(iid, ppv); 00072 if (IsEqualGUID(rclsid, &CLSID_StdComponentCategoriesMgr)) 00073 return ComCatCF_Create(iid, ppv); 00074 00075 hr = OLE32_DllGetClassObject(rclsid, iid, ppv); 00076 if (SUCCEEDED(hr)) 00077 return hr; 00078 00079 return Handler_DllGetClassObject(rclsid, iid, ppv); 00080 } Generated on Sun May 27 2012 04:25:39 for ReactOS by
1.7.6.1
|