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

shxiface.c
Go to the documentation of this file.
00001 #include "precomp.h"
00002 
00003 #define NDEBUG
00004 #include <debug.h>
00005 
00006 LONG dll_refs = 0;
00007 
00008 static HRESULT STDMETHODCALLTYPE
00009 IDeskDisplayAdapter_IShellPropSheetExt_QueryInterface(IShellPropSheetExt *iface,
00010                                                       REFIID iid,
00011                                                       PVOID *pvObject)
00012 {
00013     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IShellPropSheetExt);
00014     return IDeskDisplayAdapter_QueryInterface(This,
00015                                               iid,
00016                                               pvObject);
00017 }
00018 
00019 static ULONG STDMETHODCALLTYPE
00020 IDeskDisplayAdapter_IShellPropSheetExt_AddRef(IShellPropSheetExt* iface)
00021 {
00022     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IShellPropSheetExt);
00023     return IDeskDisplayAdapter_AddRef(This);
00024 }
00025 
00026 static ULONG STDMETHODCALLTYPE
00027 IDeskDisplayAdapter_IShellPropSheetExt_Release(IShellPropSheetExt* iface)
00028 {
00029     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IShellPropSheetExt);
00030     return IDeskDisplayAdapter_Release(This);
00031 }
00032 
00033 static HRESULT STDMETHODCALLTYPE
00034 IDeskDisplayAdapter_IShellPropSheetExt_AddPages(IShellPropSheetExt* iface,
00035                                                 LPFNADDPROPSHEETPAGE pfnAddPage,
00036                                                 LPARAM lParam)
00037 {
00038     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IShellPropSheetExt);
00039     return IDeskDisplayAdapter_AddPages(This,
00040                                         pfnAddPage,
00041                                         lParam);
00042 }
00043 
00044 static HRESULT STDMETHODCALLTYPE
00045 IDeskDisplayAdapter_IShellPropSheetExt_ReplacePage(IShellPropSheetExt* iface,
00046                                                    EXPPS uPageID,
00047                                                    LPFNADDPROPSHEETPAGE pfnReplacePage,
00048                                                    LPARAM lParam)
00049 {
00050     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IShellPropSheetExt);
00051     return IDeskDisplayAdapter_ReplacePage(This,
00052                                            uPageID,
00053                                            pfnReplacePage,
00054                                            lParam);
00055 }
00056 
00057 static IShellPropSheetExtVtbl efvtIShellPropSheetExt =
00058 {
00059     IDeskDisplayAdapter_IShellPropSheetExt_QueryInterface,
00060     IDeskDisplayAdapter_IShellPropSheetExt_AddRef,
00061     IDeskDisplayAdapter_IShellPropSheetExt_Release,
00062     IDeskDisplayAdapter_IShellPropSheetExt_AddPages,
00063     IDeskDisplayAdapter_IShellPropSheetExt_ReplacePage
00064 };
00065 
00066 static HRESULT STDMETHODCALLTYPE
00067 IDeskDisplayAdapter_IShellExtInit_QueryInterface(IShellExtInit *iface,
00068                                                  REFIID iid,
00069                                                  PVOID *pvObject)
00070 {
00071     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IShellExtInit);
00072     return IDeskDisplayAdapter_QueryInterface(This,
00073                                               iid,
00074                                               pvObject);
00075 }
00076 
00077 static ULONG STDMETHODCALLTYPE
00078 IDeskDisplayAdapter_IShellExtInit_AddRef(IShellExtInit* iface)
00079 {
00080     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IShellExtInit);
00081     return IDeskDisplayAdapter_AddRef(This);
00082 }
00083 
00084 static ULONG STDMETHODCALLTYPE
00085 IDeskDisplayAdapter_IShellExtInit_Release(IShellExtInit* iface)
00086 {
00087     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IShellExtInit);
00088     return IDeskDisplayAdapter_Release(This);
00089 }
00090 
00091 static HRESULT STDMETHODCALLTYPE
00092 IDeskDisplayAdapter_IShellExtInit_Initialize(IShellExtInit* iface,
00093                                              LPCITEMIDLIST pidlFolder,
00094                                              IDataObject *pdtobj,
00095                                              HKEY hkeyProgID)
00096 {
00097     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IShellExtInit);
00098     return IDeskDisplayAdapter_Initialize(This,
00099                                           pidlFolder,
00100                                           pdtobj,
00101                                           hkeyProgID);
00102 }
00103 
00104 static IShellExtInitVtbl efvtIShellExtInit =
00105 {
00106     IDeskDisplayAdapter_IShellExtInit_QueryInterface,
00107     IDeskDisplayAdapter_IShellExtInit_AddRef,
00108     IDeskDisplayAdapter_IShellExtInit_Release,
00109     IDeskDisplayAdapter_IShellExtInit_Initialize
00110 };
00111 
00112 static HRESULT STDMETHODCALLTYPE
00113 IDeskDisplayAdapter_IClassFactory_QueryInterface(IClassFactory *iface,
00114                                                  REFIID iid,
00115                                                  PVOID *pvObject)
00116 {
00117     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IClassFactory);
00118     return IDeskDisplayAdapter_QueryInterface(This,
00119                                               iid,
00120                                               pvObject);
00121 }
00122 
00123 static ULONG STDMETHODCALLTYPE
00124 IDeskDisplayAdapter_IClassFactory_AddRef(IClassFactory* iface)
00125 {
00126     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IClassFactory);
00127     return IDeskDisplayAdapter_AddRef(This);
00128 }
00129 
00130 static ULONG STDMETHODCALLTYPE
00131 IDeskDisplayAdapter_IClassFactory_Release(IClassFactory* iface)
00132 {
00133     PDESKDISPLAYADAPTER This = interface_to_impl(iface, IClassFactory);
00134     return IDeskDisplayAdapter_Release(This);
00135 }
00136 
00137 static HRESULT STDMETHODCALLTYPE
00138 IDeskDisplayAdapter_IClassFactory_CreateInstance(IClassFactory *iface,
00139                                                  IUnknown * pUnkOuter,
00140                                                  REFIID riid,
00141                                                  PVOID *ppvObject)
00142 {
00143     if (pUnkOuter != NULL &&
00144         !IsEqualIID(riid,
00145                     &IID_IUnknown))
00146     {
00147         return CLASS_E_NOAGGREGATION;
00148     }
00149 
00150     return IDeskDisplayAdapter_Constructor(riid,
00151                                            ppvObject);
00152 }
00153 
00154 static HRESULT STDMETHODCALLTYPE
00155 IDeskDisplayAdapter_IClassFactory_LockServer(IClassFactory *iface,
00156                                              BOOL fLock)
00157 {
00158     if (fLock)
00159         InterlockedIncrement(&dll_refs);
00160     else
00161         InterlockedDecrement(&dll_refs);
00162 
00163     return S_OK;
00164 }
00165 
00166 static IClassFactoryVtbl efvtIClassFactory =
00167 {
00168     IDeskDisplayAdapter_IClassFactory_QueryInterface,
00169     IDeskDisplayAdapter_IClassFactory_AddRef,
00170     IDeskDisplayAdapter_IClassFactory_Release,
00171     IDeskDisplayAdapter_IClassFactory_CreateInstance,
00172     IDeskDisplayAdapter_IClassFactory_LockServer,
00173 };
00174 
00175 VOID
00176 IDeskDisplayAdapter_InitIface(PDESKDISPLAYADAPTER This)
00177 {
00178     This->lpIShellPropSheetExtVtbl = &efvtIShellPropSheetExt;
00179     This->lpIShellExtInitVtbl = &efvtIShellExtInit;
00180     This->lpIClassFactoryVtbl = &efvtIClassFactory;
00181 
00182     IDeskDisplayAdapter_AddRef(This);
00183 }
00184 
00185 HRESULT WINAPI
00186 DllGetClassObject(REFCLSID rclsid,
00187                   REFIID riid,
00188                   LPVOID *ppv)
00189 {
00190     if (ppv == NULL)
00191         return E_INVALIDARG;
00192 
00193     *ppv = NULL;
00194     if (IsEqualCLSID(rclsid,
00195                      &CLSID_IDeskDisplayAdapter))
00196     {
00197         return IDeskDisplayAdapter_Constructor(riid,
00198                                                ppv);
00199     }
00200 
00201     DPRINT1("DllGetClassObject: CLASS_E_CLASSNOTAVAILABLE\n");
00202     return CLASS_E_CLASSNOTAVAILABLE;
00203 }
00204 
00205 HRESULT WINAPI
00206 DllCanUnloadNow(VOID)
00207 {
00208     return dll_refs == 0 ? S_OK : S_FALSE;
00209 }

Generated on Sat May 26 2012 04:21:05 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.