ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

oleproxy.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.