//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1997. // // File: I C O M T A R G . C P P // // Contents: ICommandTarget implementation for IUPnPTray // // Notes: // // Author: jeffspr 20 Jan 2000 // //---------------------------------------------------------------------------- #include "pch.h" #pragma hdrstop #include "tfind.h" // for tray init functions, etc. #include "upnptray.h" extern CONST TCHAR c_szMainWindowClassName[]; HRESULT CUPnPTray::QueryStatus( const GUID * pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT * pCmdText) { HRESULT hr = E_NOTIMPL; TraceTag(ttidShellFolderIface, "OBJ: CCT - IOleCommandTarget::QueryStatus"); TraceHr(ttidError, FAL, hr, (hr == E_NOTIMPL), "CUPnPTray::QueryStatus"); return hr; } HRESULT CUPnPTray::Exec( const GUID * pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG * pvaIn, VARIANTARG * pvaOut) { HRESULT hr = S_OK; TraceTag(ttidShellFolderIface, "OBJ: CCT - IOleCommandTarget::Exec"); if (IsEqualGUID(*pguidCmdGroup, CGID_ShellServiceObject)) { // Handle Shell Service Object notifications here. switch (nCmdID) { case SSOCMDID_OPEN: TraceTag(ttidShellFolder, "The Net Connections Tray is being initialized"); hr = HrHandleTrayOpen(); break; case SSOCMDID_CLOSE: TraceTag(ttidShellFolder, "The Net Connections Tray is being destroyed"); hr = HrHandleTrayClose(); break; default: hr = S_OK; break; } } TraceHr(ttidError, FAL, hr, FALSE, "CUPnPTray::Exec"); return hr; } //+--------------------------------------------------------------------------- // // Member: CUPnPTray::HrHandleTrayOpen // // Purpose: Handler for the Net Connections Tray object ::Exec call // SSOCMDID_OPEN command // // Arguments: // (none) // // Returns: // // Author: jeffspr 7 Jan 1998 // // Notes: // HRESULT CUPnPTray::HrHandleTrayOpen() { HRESULT hr = S_OK; m_hwnd = StartUPnPTray(); if (!m_hwnd) { TraceError("CUPnPTray::HrHandleTrayOpen - could not create tray " "window", hr); hr = E_FAIL; } TraceHr(ttidError, FAL, hr, FALSE, "CUPnPTray::HrHandleTrayOpen()"); return hr; } //+--------------------------------------------------------------------------- // // Member: CUPnPTray::HrHandleTrayClose // // Purpose: Handler for the Net Connections Tray object ::Exec call // SSOCMDID_CLOSE command // // Arguments: // (none) // // Returns: // // Author: jeffspr 7 Jan 1998 // // Notes: // HRESULT CUPnPTray::HrHandleTrayClose() { HRESULT hr = S_OK; UnregisterClass (c_szMainWindowClassName, _Module.GetResourceInstance()); if (m_hwnd) { DestroyWindow(m_hwnd); } TraceHr(ttidError, FAL, hr, FALSE, "CUPnPTray::HrHandleTrayClose()"); return hr; }