Leaked source code of windows server 2003
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.
|
|
//
// 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 ); };
|