summaryrefslogtreecommitdiffstats
path: root/mDNSResponder/mDNSWindows/DLLX/DLLX.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mDNSResponder/mDNSWindows/DLLX/DLLX.cpp')
-rwxr-xr-xmDNSResponder/mDNSWindows/DLLX/DLLX.cpp208
1 files changed, 208 insertions, 0 deletions
diff --git a/mDNSResponder/mDNSWindows/DLLX/DLLX.cpp b/mDNSResponder/mDNSWindows/DLLX/DLLX.cpp
new file mode 100755
index 00000000..77883ccd
--- /dev/null
+++ b/mDNSResponder/mDNSWindows/DLLX/DLLX.cpp
@@ -0,0 +1,208 @@
+/* -*- Mode: C; tab-width: 4 -*-
+ *
+ * Copyright (c) 2009 Apple Computer, Inc. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+
+
+#include "stdafx.h"
+
+#include "resource.h"
+
+#include "DLLX.h"
+
+#include "dlldatax.h"
+
+#include <DebugServices.h>
+
+
+
+
+
+class CDLLComponentModule : public CAtlDllModuleT< CDLLComponentModule >
+
+{
+
+public :
+
+ DECLARE_LIBID(LIBID_Bonjour)
+
+ DECLARE_REGISTRY_APPID_RESOURCEID(IDR_DLLX, "{56608F9C-223B-4CB6-813D-85EDCCADFB4B}")
+
+};
+
+
+
+CDLLComponentModule _AtlModule;
+
+
+
+
+
+#ifdef _MANAGED
+
+#pragma managed(push, off)
+
+#endif
+
+
+
+// DLL Entry Point
+
+extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
+
+{
+
+ debug_initialize( kDebugOutputTypeWindowsDebugger );
+ debug_set_property( kDebugPropertyTagPrintLevel, kDebugLevelVerbose );
+
+
+
+#ifdef _MERGE_PROXYSTUB
+
+ if (!PrxDllMain(hInstance, dwReason, lpReserved))
+
+ return FALSE;
+
+#endif
+
+ hInstance;
+
+ return _AtlModule.DllMain(dwReason, lpReserved);
+
+}
+
+
+
+#ifdef _MANAGED
+
+#pragma managed(pop)
+
+#endif
+
+
+
+
+
+
+
+
+
+// Used to determine whether the DLL can be unloaded by OLE
+
+STDAPI DllCanUnloadNow(void)
+
+{
+
+#ifdef _MERGE_PROXYSTUB
+
+ HRESULT hr = PrxDllCanUnloadNow();
+
+ if (hr != S_OK)
+
+ return hr;
+
+#endif
+
+ return _AtlModule.DllCanUnloadNow();
+
+}
+
+
+
+
+
+// Returns a class factory to create an object of the requested type
+
+STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
+
+{
+
+#ifdef _MERGE_PROXYSTUB
+
+ if (PrxDllGetClassObject(rclsid, riid, ppv) == S_OK)
+
+ return S_OK;
+
+#endif
+
+ return _AtlModule.DllGetClassObject(rclsid, riid, ppv);
+
+}
+
+
+
+
+
+// DllRegisterServer - Adds entries to the system registry
+
+STDAPI DllRegisterServer(void)
+
+{
+
+ // registers object, typelib and all interfaces in typelib
+
+ HRESULT hr = _AtlModule.DllRegisterServer();
+
+#ifdef _MERGE_PROXYSTUB
+
+ if (FAILED(hr))
+
+ return hr;
+
+ hr = PrxDllRegisterServer();
+
+#endif
+
+ return hr;
+
+}
+
+
+
+
+
+// DllUnregisterServer - Removes entries from the system registry
+
+STDAPI DllUnregisterServer(void)
+
+{
+
+ HRESULT hr = _AtlModule.DllUnregisterServer();
+
+#ifdef _MERGE_PROXYSTUB
+
+ if (FAILED(hr))
+
+ return hr;
+
+ hr = PrxDllRegisterServer();
+
+ if (FAILED(hr))
+
+ return hr;
+
+ hr = PrxDllUnregisterServer();
+
+#endif
+
+ return hr;
+
+}
+
+
+