138 lines
3.2 KiB
C++
138 lines
3.2 KiB
C++
//+---------------------------------------------------------------------------
|
|
//
|
|
// 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;
|
|
}
|
|
|