145 lines
4.4 KiB
C++
145 lines
4.4 KiB
C++
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1999 - 1999
|
|
//
|
|
// File: about.h
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
#ifndef _ABOUT_H
|
|
#define _ABOUT_H
|
|
|
|
#include "util.h"
|
|
|
|
class CSnapinAbout;
|
|
|
|
SC ScSetDescriptionUIText(HWND hwndSnapinDescEdit, LPCTSTR lpszDescription);
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CSnapinAboutDialog
|
|
|
|
class CSnapinAboutDialog : public CDialogImpl<CSnapinAboutDialog>
|
|
{
|
|
typedef CSnapinAboutDialog ThisClass;
|
|
typedef CDialogImpl<CSnapinAboutDialog> BaseClass;
|
|
public:
|
|
enum { IDD = IDD_SNAPIN_ABOUT };
|
|
|
|
CSnapinAboutDialog(CSnapinAbout *pSnapinAbout) : m_pAboutInfo(pSnapinAbout) {}
|
|
|
|
BEGIN_MSG_MAP(ThisClass)
|
|
MESSAGE_HANDLER (WM_INITDIALOG, OnInitDialog)
|
|
COMMAND_ID_HANDLER (IDOK, OnOK)
|
|
COMMAND_ID_HANDLER (IDCANCEL, OnCancel)
|
|
END_MSG_MAP()
|
|
|
|
protected:
|
|
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
LRESULT OnOK (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
LRESULT OnCancel (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
|
|
|
|
private:
|
|
CSnapinAbout* m_pAboutInfo;
|
|
|
|
WTL::CStatic m_hIcon;
|
|
WTL::CEdit m_SnapinInfo;
|
|
WTL::CEdit m_SnapinDesc;
|
|
};
|
|
|
|
class CSnapinAbout
|
|
{
|
|
// smart handle for icons
|
|
class CIcon
|
|
{
|
|
public:
|
|
CIcon() : m_hIcon(NULL) {}
|
|
~CIcon() { DeleteObject(); }
|
|
|
|
void Attach(HICON hIcon) { DeleteObject(); m_hIcon = hIcon; }
|
|
operator HICON() { return m_hIcon; }
|
|
|
|
void DeleteObject() { if (m_hIcon != NULL) ::DestroyIcon(m_hIcon); m_hIcon = NULL; }
|
|
|
|
private:
|
|
HICON m_hIcon;
|
|
};
|
|
|
|
// smart pointer for CoTaskMem allocated OLESTR
|
|
typedef CCoTaskMemPtr<OLECHAR> CCtmOleStrPtr;
|
|
|
|
// Constructor/Destructor
|
|
public:
|
|
CSnapinAbout();
|
|
|
|
// Interfaces
|
|
public:
|
|
void ShowAboutBox();
|
|
BOOL GetBasicInformation(CLSID& clsid)
|
|
{ return GetInformation(clsid, BASIC_INFO); }
|
|
BOOL GetSnapinInformation(CLSID& clsid)
|
|
{ return GetInformation(clsid, FULL_INFO); }
|
|
BOOL HasBasicInformation() {return m_bBasicInfo;}
|
|
BOOL HasInformation() {return m_bFullInfo;}
|
|
void GetSmallImages(HBITMAP* hImage, HBITMAP* hImageOpen, COLORREF* cMask)
|
|
{
|
|
*hImage = m_SmallImage;
|
|
*hImageOpen = m_SmallImageOpen;
|
|
*cMask = m_cMask;
|
|
}
|
|
|
|
void GetLargeImage(HBITMAP* hImage, COLORREF* cMask)
|
|
{
|
|
*hImage = m_LargeImage;
|
|
*cMask = m_cMask;
|
|
}
|
|
|
|
const LPOLESTR GetCompanyName() {return m_lpszCompanyName;};
|
|
const LPOLESTR GetDescription() {return m_lpszDescription;};
|
|
const LPOLESTR GetVersion() {return m_lpszVersion;};
|
|
const LPOLESTR GetSnapinName() {return m_lpszSnapinName;};
|
|
const HICON GetSnapinIcon() { return m_AppIcon; }
|
|
const HRESULT GetObjectStatus() { return m_hrObjectStatus; }
|
|
|
|
public: // Not published by about object, name derived from console
|
|
void SetSnapinName(LPCOLESTR lpszName)
|
|
{
|
|
ASSERT(lpszName != NULL);
|
|
m_lpszSnapinName.Delete(); // delete any existing name
|
|
m_lpszSnapinName.Attach(CoTaskDupString(lpszName));
|
|
}
|
|
|
|
private:
|
|
void CommonContruct();
|
|
|
|
enum INFORMATION_TYPE
|
|
{
|
|
BASIC_INFO,
|
|
FULL_INFO
|
|
};
|
|
BOOL GetInformation(CLSID& clsid, int nType);
|
|
|
|
// Attributes
|
|
private:
|
|
BOOL m_bBasicInfo; // TRUE if basic info is loaded
|
|
BOOL m_bFullInfo; // TRUE if all snapin info is loaded
|
|
|
|
CCtmOleStrPtr m_lpszSnapinName; // Snap-in name Note: this is not exposed by the snap-in.
|
|
CCtmOleStrPtr m_lpszCompanyName; // Company Name (Provider)
|
|
CCtmOleStrPtr m_lpszDescription; // Description box text
|
|
CCtmOleStrPtr m_lpszVersion; // Version string
|
|
|
|
CIcon m_AppIcon; // Property page icon
|
|
WTL::CBitmap m_SmallImage; // Small image for scope and result pane
|
|
WTL::CBitmap m_SmallImageOpen; // Open image for scope pane.
|
|
WTL::CBitmap m_LargeImage; // Large image for result pane
|
|
COLORREF m_cMask;
|
|
HRESULT m_hrObjectStatus; // Result from object creation
|
|
};
|
|
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|