|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997.
//
// File: D L L M A I N . C P P
//
// Contents: DLL entry points for upnpcont.dll
//
// Notes:
//
// Author: mbend 8 Aug 2000
//
//----------------------------------------------------------------------------
#include "pch.h"
#pragma hdrstop
#include "ucres.h"
#include "ucbase.h"
#include "hostp.h"
#include "hostp_i.c"
// Headers of COM objects
#include "Container.h"
CServerAppModule _Module;
BEGIN_OBJECT_MAP(ObjectMap) OBJECT_ENTRY(CLSID_UPnPContainer, CContainer) END_OBJECT_MAP()
/////////////////////////////////////////////////////////////////////////////
//
extern "C" int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpCmdLine, int /*nShowCmd*/) { lpCmdLine = GetCommandLine(); //this line necessary for _ATL_MIN_CRT
HRESULT hr = S_OK;
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); TraceHr(ttidError, FAL, hr, FALSE, "WinMain - CoInitializeEx failed!"); if(SUCCEEDED(hr)) { hr = CoInitializeSecurity( NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_CONNECT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, 0, NULL); }
_Module.Init(ObjectMap, hInstance);
BOOL bRun = _Module.ParseCommandLine(lpCmdLine, L"{4F0AC159-5804-4aa7-AE91-117D6E67BB9B}", &hr);
if (bRun) { _Module.StartMonitor(); hr = _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_SINGLEUSE | REGCLS_SUSPENDED); TraceHr(ttidError, FAL, hr, FALSE, "_Module.RegisterClassObjects failed!"); hr = CoResumeClassObjects(); TraceHr(ttidError, FAL, hr, FALSE, "CoResumeClassObjects failed");
MSG msg; while (GetMessage(&msg, 0, 0, 0)) DispatchMessage(&msg);
_Module.RevokeClassObjects();
// Terminate the shutdown thread
CContainer::DoNormalShutdown(); }
_Module.Term(); CoUninitialize(); return hr; }
|