63 lines
1.5 KiB
C++
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);
|
|
};
|
|
|