00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include "stdafx.h"
00028 #include "resource.h"
00029 #include <initguid.h>
00030 #ifdef CC_PDF_CONVERTER
00031 #include "CCPDFExcelAddin.h"
00032 #elif EXCEL_TO_PDF
00033 #include "XL2PDFExcelAddin.h"
00034 #else
00035 #error "Please define one of the printer types"
00036 #endif
00037 #include "dlldatax.h"
00038
00039 #ifdef CC_PDF_CONVERTER
00040 #include "CCPDFExcelAddin_i.c"
00041 #elif EXCEL_TO_PDF
00042 #include "XL2PDFExcelAddin_i.c"
00043 #else
00044 #error "Please define one of the printer types"
00045 #endif
00046 #include "CCPDFExcelAddinObj.h"
00047
00048 #ifdef _MERGE_PROXYSTUB
00050 extern "C" HINSTANCE hProxyDll;
00051 #endif
00052
00054 CComModule _Module;
00055
00056 BEGIN_OBJECT_MAP(ObjectMap)
00057 #ifdef CC_PDF_CONVERTER
00058 OBJECT_ENTRY(CLSID_CCPDFExcelAddinObj, CCCPDFExcelAddinObj)
00059 #elif EXCEL_TO_PDF
00060 OBJECT_ENTRY(CLSID_XL2PDFExcelAddinObj, CCCPDFExcelAddinObj)
00061 #else
00062 #error "Please define one of the printer types"
00063 #endif
00064 END_OBJECT_MAP()
00065
00066
00067
00068
00069
00075 extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
00076 {
00077 lpReserved;
00078 #ifdef _MERGE_PROXYSTUB
00079 if (!PrxDllMain(hInstance, dwReason, lpReserved))
00080 return FALSE;
00081 #endif
00082 if (dwReason == DLL_PROCESS_ATTACH)
00083 {
00084 #ifdef CC_PDF_CONVERTER
00085 _Module.Init(ObjectMap, hInstance, &LIBID_CCPDFEXCELADDINLib);
00086 #elif EXCEL_TO_PDF
00087 _Module.Init(ObjectMap, hInstance, &LIBID_XL2PDFEXCELADDINLib);
00088 #else
00089 #error "Please define one of the printer types"
00090 #endif
00091 DisableThreadLibraryCalls(hInstance);
00092 }
00093 else if (dwReason == DLL_PROCESS_DETACH)
00094 _Module.Term();
00095 return TRUE;
00096 }
00097
00102 STDAPI DllCanUnloadNow(void)
00103 {
00104 #ifdef _MERGE_PROXYSTUB
00105 if (PrxDllCanUnloadNow() != S_OK)
00106 return S_FALSE;
00107 #endif
00108 return (_Module.GetLockCount()==0) ? S_OK : S_FALSE;
00109 }
00110
00118 STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
00119 {
00120 #ifdef _MERGE_PROXYSTUB
00121 if (PrxDllGetClassObject(rclsid, riid, ppv) == S_OK)
00122 return S_OK;
00123 #endif
00124 return _Module.GetClassObject(rclsid, riid, ppv);
00125 }
00126
00131 STDAPI DllRegisterServer(void)
00132 {
00133 #ifdef _MERGE_PROXYSTUB
00134 HRESULT hRes = PrxDllRegisterServer();
00135 if (FAILED(hRes))
00136 return hRes;
00137 #endif
00138
00139 return _Module.RegisterServer(TRUE);
00140 }
00141
00146 STDAPI DllUnregisterServer(void)
00147 {
00148 #ifdef _MERGE_PROXYSTUB
00149 PrxDllUnregisterServer();
00150 #endif
00151 return _Module.UnregisterServer(TRUE);
00152 }
00153
00154