349 lines
8.1 KiB
C++
349 lines
8.1 KiB
C++
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
/*++
|
||
|
|
||
|
Copyright (C) Microsoft Corporation, 1997 - 1999
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
LogAbout.cpp
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
Implementation file for the CLoggingSnapinAbout class.
|
||
|
|
||
|
The CLoggingSnapinAbout class implements the ISnapinAbout interface which enables the MMC
|
||
|
console to get copyright and version information from the snap-in.
|
||
|
The console also uses this interface to obtain images for the static folder
|
||
|
from the snap-in.
|
||
|
|
||
|
|
||
|
Revision History:
|
||
|
mmaguire 11/6/97 - created using MMC snap-in wizard
|
||
|
|
||
|
--*/
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
// BEGIN INCLUDES
|
||
|
//
|
||
|
// standard includes:
|
||
|
//
|
||
|
#include "Precompiled.h"
|
||
|
//
|
||
|
// where we can find declaration for main class in this file:
|
||
|
//
|
||
|
#include "LogAbout.h"
|
||
|
//
|
||
|
//
|
||
|
// where we can find declarations needed in this file:
|
||
|
//
|
||
|
|
||
|
//
|
||
|
// END INCLUDES
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
/*++
|
||
|
|
||
|
CLoggingSnapinAbout::GetSnapinDescription
|
||
|
|
||
|
|
||
|
Enables the console to obtain the text for the snap-in's description box.
|
||
|
|
||
|
|
||
|
HRESULT GetSnapinDescription(
|
||
|
LPOLESTR * lpDescription // Pointer to the description text.
|
||
|
);
|
||
|
|
||
|
|
||
|
Parameters
|
||
|
|
||
|
lpDescription
|
||
|
[out] Pointer to the text for the description box on an About property page.
|
||
|
|
||
|
|
||
|
Return Values
|
||
|
|
||
|
S_OK
|
||
|
The text was successfully obtained.
|
||
|
|
||
|
|
||
|
Remarks
|
||
|
Memory for out parameters must be allocated using CoTaskMemAlloc. This function is documented in the Platform SDK.
|
||
|
|
||
|
--*/
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
STDMETHODIMP CLoggingSnapinAbout::GetSnapinDescription (LPOLESTR *lpDescription)
|
||
|
{
|
||
|
ATLTRACE(_T("+NAPMMC+:# CLoggingSnapinAbout::GetSnapinDescription\n"));
|
||
|
|
||
|
USES_CONVERSION;
|
||
|
|
||
|
TCHAR szBuf[256];
|
||
|
if (::LoadString(_Module.GetResourceInstance(), IDS_NAPSNAPIN_DESC, szBuf, 256) == 0)
|
||
|
return E_FAIL;
|
||
|
|
||
|
*lpDescription = (LPOLESTR)CoTaskMemAlloc((lstrlen(szBuf) + 1) * sizeof(TCHAR));
|
||
|
if (*lpDescription == NULL)
|
||
|
return E_OUTOFMEMORY;
|
||
|
|
||
|
ocscpy(*lpDescription, T2OLE(szBuf));
|
||
|
|
||
|
return S_OK;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
/*++
|
||
|
|
||
|
CLoggingSnapinAbout::GetProvider
|
||
|
|
||
|
|
||
|
Enables the console to obtain the snap-in provider's name.
|
||
|
|
||
|
|
||
|
HRESULT GetProvider(
|
||
|
LPOLESTR * lpName // Pointer to the provider's name
|
||
|
);
|
||
|
|
||
|
|
||
|
Parameters
|
||
|
|
||
|
lpName
|
||
|
[out] Pointer to the text making up the snap-in provider's name.
|
||
|
|
||
|
|
||
|
Return Values
|
||
|
|
||
|
S_OK
|
||
|
The name was successfully obtained.
|
||
|
|
||
|
|
||
|
Remarks
|
||
|
|
||
|
Memory for out parameters must be allocated using CoTaskMemAlloc. This function is documented in the Platform SDK.
|
||
|
|
||
|
--*/
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
STDMETHODIMP CLoggingSnapinAbout::GetProvider (LPOLESTR *lpName)
|
||
|
{
|
||
|
ATLTRACE(_T("+NAPMMC+:# CLoggingSnapinAbout::GetProvider\n"));
|
||
|
|
||
|
USES_CONVERSION;
|
||
|
TCHAR szBuf[256];
|
||
|
if (::LoadString(_Module.GetResourceInstance(), IDS_NAPSNAPIN_PROVIDER, szBuf, 256) == 0)
|
||
|
return E_FAIL;
|
||
|
|
||
|
*lpName = (LPOLESTR)CoTaskMemAlloc((lstrlen(szBuf) + 1) * sizeof(TCHAR));
|
||
|
if (*lpName == NULL)
|
||
|
return E_OUTOFMEMORY;
|
||
|
|
||
|
ocscpy(*lpName, T2OLE(szBuf));
|
||
|
|
||
|
return S_OK;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
/*++
|
||
|
|
||
|
CLoggingSnapinAbout::GetSnapinVersion
|
||
|
|
||
|
|
||
|
Enables the console to obtain the snap-in's version number.
|
||
|
|
||
|
|
||
|
HRESULT GetSnapinVersion(
|
||
|
LPOLESTR* lpVersion // Pointer to the version number.
|
||
|
);
|
||
|
|
||
|
|
||
|
Parameters
|
||
|
|
||
|
lpVersion
|
||
|
[out] Pointer to the text making up the snap-in's version number.
|
||
|
|
||
|
|
||
|
Return Values
|
||
|
|
||
|
S_OK
|
||
|
The version number was successfully obtained.
|
||
|
|
||
|
|
||
|
Remarks
|
||
|
|
||
|
Memory for out parameters must be allocated using CoTaskMemAlloc. This function is documented in the Platform SDK.
|
||
|
|
||
|
--*/
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
STDMETHODIMP CLoggingSnapinAbout::GetSnapinVersion (LPOLESTR *lpVersion)
|
||
|
{
|
||
|
ATLTRACE(_T("+NAPMMC+:# CLoggingSnapinAbout::GetSnapinVersion\n"));
|
||
|
|
||
|
USES_CONVERSION;
|
||
|
TCHAR szBuf[256];
|
||
|
if (::LoadString(_Module.GetResourceInstance(), IDS_NAPSNAPIN_VERSION, szBuf, 256) == 0)
|
||
|
return E_FAIL;
|
||
|
|
||
|
*lpVersion = (LPOLESTR)CoTaskMemAlloc((lstrlen(szBuf) + 1) * sizeof(TCHAR));
|
||
|
if (*lpVersion == NULL)
|
||
|
return E_OUTOFMEMORY;
|
||
|
|
||
|
ocscpy(*lpVersion, T2OLE(szBuf));
|
||
|
|
||
|
return S_OK;
|
||
|
}
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
/*++
|
||
|
|
||
|
CLoggingSnapinAbout::GetSnapinImage
|
||
|
|
||
|
|
||
|
Enables the console to obtain the snap-in's main icon to be used in the About box.
|
||
|
|
||
|
|
||
|
HRESULT GetSnapinImage(
|
||
|
HICON * hAppIcon // Pointer to the application's main icon
|
||
|
);
|
||
|
|
||
|
|
||
|
Parameters
|
||
|
|
||
|
hAppIcon
|
||
|
[out] Pointer to the handle of the main icon of the snap-in that is to be used in the About property page.
|
||
|
|
||
|
|
||
|
Return Values
|
||
|
|
||
|
S_OK
|
||
|
The handle to the icon was successfully obtained.
|
||
|
|
||
|
ISSUE: What do I return if I can't get the icon?
|
||
|
|
||
|
Remarks
|
||
|
|
||
|
Memory for out parameters must be allocated using CoTaskMemAlloc. This function is documented in the Platform SDK.
|
||
|
|
||
|
--*/
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
STDMETHODIMP CLoggingSnapinAbout::GetSnapinImage (HICON *hAppIcon)
|
||
|
{
|
||
|
ATLTRACE(_T("+NAPMMC+:# CLoggingSnapinAbout::GetSnapinImage\n"));
|
||
|
|
||
|
|
||
|
// ISSUE: be sure it is GetSnapinImage that returns this icon and not something
|
||
|
// from GetStaticFolderImage.
|
||
|
|
||
|
// ISSUE: should probably use LoadImage here instead
|
||
|
if ( NULL == (*hAppIcon = ::LoadIcon(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDI_NAP_SNAPIN_IMAGE) ) ) )
|
||
|
return E_FAIL;
|
||
|
|
||
|
return S_OK;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
/*++
|
||
|
|
||
|
CLoggingSnapinAbout::GetStaticFolderImage
|
||
|
|
||
|
|
||
|
Allows the console to obtain the static folder images for the scope and result panes.
|
||
|
|
||
|
As of version 1.1 of MMC, the icon returned here will be the icon used on
|
||
|
the root node of our snapin.
|
||
|
|
||
|
|
||
|
|
||
|
HRESULT GetStaticFolderImage(
|
||
|
HBITMAP * hSmallImage, // Pointer to a handle to a small icon.
|
||
|
HBITMAP * hSmallImageOpen, // Pointer to a handle to open folder
|
||
|
// icon.
|
||
|
HBITMAP * hLargeImage, // Pointer to a handle to a large icon.
|
||
|
COLORREF * cMask // Color used to generate a mask.
|
||
|
);
|
||
|
|
||
|
|
||
|
Parameter
|
||
|
|
||
|
hSmallImage
|
||
|
[out] Pointer to the handle of a small icon (16x16n pixels) in either the scope or result view pane.
|
||
|
|
||
|
hSmallImageOpen
|
||
|
[out] Pointer to the handle of a small open-folder icon (16x16n pixels).
|
||
|
|
||
|
hLargImage
|
||
|
[out] Pointer to the handle of a large icon (32x32n pixels).
|
||
|
|
||
|
cMask
|
||
|
[out] Pointer to a COLORREF structure that specifies the color used to generate a mask. This structure is documented in the Platform SDK.
|
||
|
|
||
|
|
||
|
Return Values
|
||
|
|
||
|
S_OK
|
||
|
The icon was successfully obtained.
|
||
|
|
||
|
ISSUE: What should we return if we fail?
|
||
|
|
||
|
--*/
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
STDMETHODIMP CLoggingSnapinAbout::GetStaticFolderImage (
|
||
|
HBITMAP *hSmallImage,
|
||
|
HBITMAP *hSmallImageOpen,
|
||
|
HBITMAP *hLargeImage,
|
||
|
COLORREF *cMask)
|
||
|
{
|
||
|
|
||
|
ATLTRACE(_T("+NAPMMC+:# CLoggingSnapinAbout::GetStaticFolderImage\n"));
|
||
|
|
||
|
/*
|
||
|
|
||
|
if( NULL == (*hSmallImageOpen = (HBITMAP) LoadImage(
|
||
|
_Module.GetResourceInstance(), // handle of the instance that contains the image
|
||
|
MAKEINTRESOURCE(IDB_CRAPWIZ_OPEN_16), // name or identifier of image
|
||
|
IMAGE_BITMAP, // type of image
|
||
|
0, // desired width
|
||
|
0, // desired height
|
||
|
LR_DEFAULTCOLOR // load flags
|
||
|
) ) )
|
||
|
{
|
||
|
return E_FAIL;
|
||
|
}
|
||
|
|
||
|
|
||
|
if( NULL == (*hSmallImage = (HBITMAP) LoadImage(
|
||
|
_Module.GetResourceInstance(), // handle of the instance that contains the image
|
||
|
MAKEINTRESOURCE(IDB_CRAPWIZ_16), // name or identifier of image
|
||
|
IMAGE_BITMAP, // type of image
|
||
|
0, // desired width
|
||
|
0, // desired height
|
||
|
LR_DEFAULTCOLOR // load flags
|
||
|
) ) )
|
||
|
{
|
||
|
return E_FAIL;
|
||
|
}
|
||
|
|
||
|
if( NULL == (*hLargeImage = (HBITMAP) LoadImage(
|
||
|
_Module.GetResourceInstance(), // handle of the instance that contains the image
|
||
|
MAKEINTRESOURCE(IDB_CRAPWIZ_32), // name or identifier of image
|
||
|
IMAGE_BITMAP, // type of image
|
||
|
0, // desired width
|
||
|
0, // desired height
|
||
|
LR_DEFAULTCOLOR // load flags
|
||
|
) ) )
|
||
|
{
|
||
|
return E_FAIL;
|
||
|
}
|
||
|
|
||
|
|
||
|
*/
|
||
|
return S_OK;
|
||
|
}
|