windows-nt/Source/XPSP1/NT/net/upnp/host/upnpcont/cont/container.h
2020-09-26 16:20:57 +08:00

63 lines
1.5 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2000.
//
// File: C O N T A I N E R . H
//
// Contents: Serves as container for device host objects.
//
// Notes:
//
// Author: mbend 6 Sep 2000
//
//----------------------------------------------------------------------------
#pragma once
#include "ucres.h" // main symbols
#include "hostp.h"
// Typedefs
/////////////////////////////////////////////////////////////////////////////
// TestObject
class ATL_NO_VTABLE CContainer :
public CComObjectRootEx<CComMultiThreadModel>,
public CComCoClass<CContainer, &CLSID_UPnPContainer>,
public IUPnPContainer
{
public:
CContainer();
~CContainer();
DECLARE_REGISTRY_RESOURCEID(IDR_CONTAINER)
DECLARE_NOT_AGGREGATABLE(CContainer)
BEGIN_COM_MAP(CContainer)
COM_INTERFACE_ENTRY(IUPnPContainer)
END_COM_MAP()
public:
// IUPnPContainer methods
STDMETHOD(CreateInstance)(
/*[in]*/ REFCLSID clsid,
/*[in]*/ REFIID riid,
/*[out, iid_is(riid)]*/ void ** ppv);
STDMETHOD(Shutdown)();
STDMETHOD(SetParent)(
/*[in]*/ DWORD pid);
static void DoNormalShutdown();
private:
static HANDLE s_hThreadShutdown;
static HANDLE s_hEventShutdown;
static HANDLE s_hProcessDiedWait;
static HANDLE s_hParentProc;
static DWORD WINAPI ShutdownThread(void*);
static VOID WINAPI KillThread(void*, BOOLEAN);
};