100 lines
3.2 KiB
C
100 lines
3.2 KiB
C
|
//
|
||
|
// Copyright 2001 - Microsoft Corporation
|
||
|
//
|
||
|
//
|
||
|
// Created By:
|
||
|
// Geoff Pease (GPease) 23-JAN-2001
|
||
|
//
|
||
|
// Maintained By:
|
||
|
// Geoff Pease (GPease) 23-JAN-2001
|
||
|
//
|
||
|
#pragma once
|
||
|
|
||
|
class
|
||
|
CSummaryPage
|
||
|
: public IShellExtInit
|
||
|
, public IShellPropSheetExt
|
||
|
{
|
||
|
private: // data
|
||
|
ULONG _cRef; // reference counter
|
||
|
HWND _hdlg; // dialog handle
|
||
|
LPIDA _pida; //
|
||
|
|
||
|
BOOL _fReadOnly:1; // TRUE if the storage is read-only
|
||
|
BOOL _fNeedLicensePage:1; // TRUE if we need to add the license page
|
||
|
BOOL _fAdvanced; // Show the Advanced Dialog == TRUE -- hast be be a complete BOOL!
|
||
|
CAdvancedDlg * _pAdvancedDlg; // Advanced Dialog
|
||
|
CSimpleDlg * _pSimpleDlg; // Simple Dialog
|
||
|
|
||
|
DWORD _dwCurrentBindMode; // what mode the storage was openned with.
|
||
|
ULONG _cSources; // number of sources - sizeof the arrays _rgpss and rgpPropertyCache
|
||
|
DWORD * _rgdwDocType; // array of DWORDs indicating file type (see PTSFTYPE flags)
|
||
|
IPropertySetStorage ** _rgpss; // array of IPropertySetStorages representing the PIDLs
|
||
|
CPropertyCache * _pPropertyCache; // Property Cache
|
||
|
|
||
|
private: // methods
|
||
|
explicit CSummaryPage( void );
|
||
|
~CSummaryPage( void );
|
||
|
|
||
|
HRESULT
|
||
|
Init( void );
|
||
|
HRESULT
|
||
|
Item( UINT idxIn, LPITEMIDLIST * ppidlOut );
|
||
|
HRESULT
|
||
|
EnsureAdvancedDlg( void );
|
||
|
HRESULT
|
||
|
EnsureSimpleDlg( void );
|
||
|
HRESULT
|
||
|
PersistMode( void );
|
||
|
HRESULT
|
||
|
RecallMode( void );
|
||
|
HRESULT
|
||
|
RetrieveProperties( void );
|
||
|
HRESULT
|
||
|
PersistProperties( void );
|
||
|
HRESULT
|
||
|
BindToStorage( void );
|
||
|
HRESULT
|
||
|
ReleaseStorage( void );
|
||
|
void
|
||
|
CollateMultipleProperties( CPropertyCache ** rgpPropertyCaches );
|
||
|
void
|
||
|
ChangeGatheredPropertiesToReadOnly( CPropertyCache * pCacheIn );
|
||
|
HRESULT
|
||
|
CheckForCopyProtection( CPropertyCache * pCacheIn );
|
||
|
|
||
|
|
||
|
//
|
||
|
// Message Handlers
|
||
|
//
|
||
|
|
||
|
static INT_PTR CALLBACK
|
||
|
DlgProc( HWND hDlgIn, UINT uMsgIn, WPARAM wParam, LPARAM lParam );
|
||
|
static UINT CALLBACK
|
||
|
PageCallback( HWND hwndIn, UINT uMsgIn, LPPROPSHEETPAGE ppspIn );
|
||
|
LRESULT
|
||
|
OnInitDialog( void );
|
||
|
LRESULT
|
||
|
OnNotify( int iCtlIdIn, LPNMHDR pnmhIn );
|
||
|
LRESULT
|
||
|
OnToggle( void );
|
||
|
LRESULT
|
||
|
OnDestroy( void );
|
||
|
|
||
|
public: // methods
|
||
|
static HRESULT
|
||
|
CreateInstance( IUnknown ** ppunkOut );
|
||
|
|
||
|
// IUnknown
|
||
|
STDMETHOD( QueryInterface )( REFIID riid, LPVOID *ppv );
|
||
|
STDMETHOD_( ULONG, AddRef )( void );
|
||
|
STDMETHOD_( ULONG, Release )( void );
|
||
|
|
||
|
// IShellExtInit
|
||
|
STDMETHOD( Initialize )( LPCITEMIDLIST pidlFolder, LPDATAOBJECT lpdobj, HKEY hkeyProgID );
|
||
|
|
||
|
// IShellPropSheetExt
|
||
|
STDMETHOD( AddPages )( LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam);
|
||
|
STDMETHOD( ReplacePage )( UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplacePage, LPARAM lParam );
|
||
|
};
|