You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
200 lines
5.0 KiB
200 lines
5.0 KiB
/*++
|
|
|
|
(c) 1998 Seagate Software, Inc. All rights reserved.
|
|
|
|
Module Name:
|
|
|
|
About.cpp
|
|
|
|
Abstract:
|
|
|
|
This component implements the ISnapinAbout
|
|
interface for the Remote Storage Snapin.
|
|
|
|
Author:
|
|
|
|
Art Bragg [abragg] 04-Aug-1997
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "stdafx.h"
|
|
|
|
#include <NtVerP.h>
|
|
#include "RsBuild.h"
|
|
|
|
#include "About.h"
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// ISnapinAbout
|
|
///////////////////////////////////////////////////////////////////////
|
|
|
|
CAbout::CAbout()
|
|
{
|
|
m_hSmallImage = NULL;
|
|
m_hSmallImageOpen = NULL;
|
|
m_hLargeImage = NULL;
|
|
m_hAppIcon = NULL;
|
|
}
|
|
|
|
CAbout::~CAbout()
|
|
{
|
|
DestroyBitmapObjects();
|
|
DestroyIconObject();
|
|
}
|
|
|
|
void CAbout::DestroyBitmapObjects(void)
|
|
{
|
|
if (NULL != m_hSmallImage) {
|
|
DeleteObject(m_hSmallImage);
|
|
m_hSmallImage = NULL;
|
|
}
|
|
if (NULL != m_hSmallImageOpen) {
|
|
DeleteObject(m_hSmallImageOpen);
|
|
m_hSmallImageOpen = NULL;
|
|
}
|
|
if (NULL != m_hLargeImage) {
|
|
DeleteObject(m_hLargeImage);
|
|
m_hLargeImage = NULL;
|
|
}
|
|
}
|
|
|
|
void CAbout::DestroyIconObject(void)
|
|
{
|
|
if (NULL != m_hAppIcon) {
|
|
DestroyIcon(m_hAppIcon);
|
|
m_hAppIcon = NULL;
|
|
}
|
|
}
|
|
|
|
HRESULT CAbout::AboutHelper(UINT nID, LPOLESTR* lpPtr)
|
|
{
|
|
WsbTraceIn( L"CAbout::AboutHelper", L"lpPtr = <0x%p>", lpPtr );
|
|
|
|
HRESULT hr = S_OK;
|
|
|
|
try {
|
|
|
|
WsbAffirmPointer( lpPtr );
|
|
|
|
CWsbStringPtr s;
|
|
s.LoadFromRsc( _Module.m_hInst, nID );
|
|
|
|
*lpPtr = 0;
|
|
WsbAffirmHr( s.CopyTo( lpPtr ) );
|
|
|
|
} WsbCatch( hr );
|
|
|
|
WsbTraceOut( L"CAbout::AboutHelper", L"hr = <%ls>, *lpPtr = <%ls>", WsbHrAsString( hr ), WsbPtrToStringAsString( lpPtr ) );
|
|
return( hr );
|
|
}
|
|
|
|
|
|
STDMETHODIMP CAbout::GetSnapinDescription(LPOLESTR* lpDescription)
|
|
{
|
|
WsbTraceIn( L"CAbout::GetSnapinDescription", L"lpDescription = <0x%p>", lpDescription );
|
|
|
|
HRESULT hr = AboutHelper(IDS_DESCRIPTION, lpDescription);
|
|
|
|
WsbTraceOut( L"CAbout::GetSnapinDescription", L"hr = <%ls>, *lpDescription = <%ls>", WsbHrAsString( hr ), WsbPtrToStringAsString( lpDescription ) );
|
|
return( hr );
|
|
}
|
|
|
|
|
|
STDMETHODIMP CAbout::GetProvider(LPOLESTR* lpName)
|
|
{
|
|
WsbTraceIn( L"CAbout::GetProvider", L"lpName = <0x%p>", lpName );
|
|
|
|
HRESULT hr = AboutHelper(IDS_COMPANY, lpName);
|
|
|
|
WsbTraceOut( L"CAbout::GetProvider", L"hr = <%ls>, *lpName = <%ls>", WsbHrAsString( hr ), WsbPtrToStringAsString( lpName ) );
|
|
return( hr );
|
|
}
|
|
|
|
|
|
STDMETHODIMP CAbout::GetSnapinVersion(LPOLESTR* lpVersion)
|
|
{
|
|
WsbTraceIn( L"CAbout::GetSnapinVersion", L"lpVersion = <0x%p>", lpVersion );
|
|
|
|
HRESULT hr = S_OK;
|
|
|
|
try {
|
|
|
|
*lpVersion = 0;
|
|
|
|
CWsbStringPtr s;
|
|
s.Alloc( 100 );
|
|
swprintf( s, L"%hs.%d [%ls]", VER_PRODUCTVERSION_STRING, VER_PRODUCTBUILD, RS_BUILD_VERSION_STRING );
|
|
|
|
WsbAffirmHr( s.CopyTo( lpVersion ) );
|
|
|
|
} WsbCatch( hr );
|
|
|
|
WsbTraceOut( L"CAbout::GetSnapinVersion", L"hr = <%ls>, *lpVersion = <%ls>", WsbHrAsString( hr ), WsbPtrToStringAsString( lpVersion ) );
|
|
return( hr );
|
|
}
|
|
|
|
|
|
STDMETHODIMP CAbout::GetSnapinImage(HICON* hAppIcon)
|
|
{
|
|
WsbTraceIn( L"CAbout::GetSnapinImage", L"hAppIcon = <0x%p>", hAppIcon );
|
|
|
|
AFX_MANAGE_STATE( AfxGetStaticModuleState());
|
|
HRESULT hr = S_OK;
|
|
|
|
try {
|
|
|
|
WsbAffirmPointer( hAppIcon )
|
|
|
|
DestroyIconObject();
|
|
|
|
m_hAppIcon = LoadIcon( AfxGetInstanceHandle(), MAKEINTRESOURCE( IDI_BLUESAKKARA ) );
|
|
*hAppIcon = m_hAppIcon;
|
|
WsbAffirmPointer( *hAppIcon );
|
|
|
|
} WsbCatch( hr );
|
|
|
|
WsbTraceOut( L"CAbout::GetSnapinImage", L"hr = <%ls>, *lpVersion = <%ls>", WsbHrAsString( hr ), WsbPtrToPtrAsString( (void**)hAppIcon ) );
|
|
return( hr );
|
|
}
|
|
|
|
|
|
STDMETHODIMP
|
|
CAbout::GetStaticFolderImage(
|
|
HBITMAP* hSmallImage,
|
|
HBITMAP* hSmallImageOpen,
|
|
HBITMAP* hLargeImage,
|
|
COLORREF* cLargeMask
|
|
)
|
|
{
|
|
WsbTraceIn( L"CAbout::GetStaticFolderImage", L"" );
|
|
|
|
AFX_MANAGE_STATE( AfxGetStaticModuleState());
|
|
HRESULT hr = S_OK;
|
|
|
|
try {
|
|
DestroyBitmapObjects();
|
|
|
|
m_hSmallImage = LoadBitmap( AfxGetInstanceHandle(), MAKEINTRESOURCE( IDB_SMALL_SAKKARA ) );
|
|
*hSmallImage = m_hSmallImage;
|
|
WsbAffirmStatus( 0 != *hSmallImage );
|
|
|
|
m_hSmallImageOpen = LoadBitmap( AfxGetInstanceHandle(), MAKEINTRESOURCE( IDB_SMALL_SAKKARA ) );
|
|
*hSmallImageOpen = m_hSmallImageOpen;
|
|
WsbAffirmStatus( 0 != *hSmallImageOpen );
|
|
|
|
m_hLargeImage = LoadBitmap( AfxGetInstanceHandle(), MAKEINTRESOURCE( IDB_LARGE_SAKKARA ) );
|
|
*hLargeImage = m_hLargeImage;
|
|
WsbAffirmStatus( 0 != *hLargeImage );
|
|
|
|
*cLargeMask = RGB( 0xFF, 0x00, 0xFF ); // Magenta
|
|
|
|
} WsbCatch( hr );
|
|
|
|
WsbTraceOut( L"CAbout::GetStaticFolderImage", L"hr = <%ls>", WsbHrAsString( hr ) );
|
|
return( hr );
|
|
}
|