mirror of https://github.com/tongzx/nt5src
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.
99 lines
3.2 KiB
99 lines
3.2 KiB
//
|
|
// 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 );
|
|
};
|