// // Copyright 2001 - Microsoft Corporation // // // Created By: // Geoff Pease (GPease) 23-JAN-2001 // // Maintained By: // Geoff Pease (GPease) 23-JAN-2001 // #pragma once class CAdvancedDlg : public IUnknown { private: // data ULONG _cRef; // reference counter HWND _hwndParent; // parent window of dialog HWND _hdlg; // dialog handle HWND _hwndList; // list view window handle BOOL _fMultipleSources; // TRUE if multiple sources were selected IEditVariantsInPlace * _pEdit; // active control editting a variant CPropertyCacheItem * _pItem; // item being editted by control - NO REFCOUNT private: // methods explicit CAdvancedDlg( void ); ~CAdvancedDlg( void ); HRESULT Init( HWND hwndParentIn ); HRESULT CreateControlForProperty( INT iItemIn ); HRESULT PersistControlInProperty( void ); void ReplaceListViewWithString( int idsIn ); HRESULT DoHelp( HWND hwndIn, int iXIn, int iYIn, UINT uCommandIn ); // // Message Handlers // static INT_PTR CALLBACK DlgProc( HWND hDlgIn, UINT uMsgIn, WPARAM wParam, LPARAM lParam ); LRESULT OnInitDialog( void ); LRESULT OnCommand( WORD wCodeIn, WORD wCtlIn, LPARAM lParam ); LRESULT OnNotify( int iCtlIdIn, LPNMHDR pnmhIn ); LRESULT OnNotifyClick( LPNMITEMACTIVATE pnmIn ); LRESULT OnDestroy( void ); LRESULT OnHelp( LPHELPINFO pHelpInfoIn ); LRESULT OnContextMenu( HWND hwndIn, int iXIn, int iYIn ); static LRESULT CALLBACK ListViewSubclassProc( HWND hwndIn , UINT uMsgIn , WPARAM wParam , LPARAM lParam , UINT_PTR uIdSubclassIn , DWORD_PTR dwRefDataIn ); LRESULT List_OnCommand( WORD wCtlIn, WORD wCodeIn, LPARAM lParam ); LRESULT List_OnChar( UINT uKeyCodeIn, LPARAM lParam ); LRESULT List_OnKeyDown( UINT uKeyCodeIn, LPARAM lParam ); LRESULT List_OnNotify( int iCtlIdIn, LPNMHDR pnmhIn ); LRESULT List_OnVertScroll( WORD wCodeIn, WORD wPosIn, HWND hwndFromIn ); LRESULT List_OnHornScroll( WORD wCodeIn, WORD wPosIn, HWND hwndFromIn ); public: // methods static HRESULT CreateInstance( CAdvancedDlg ** pAdvDlgOut, HWND hwndParentIn ); HRESULT Show( void ); HRESULT Hide( void ); HRESULT PopulateProperties( CPropertyCache * ppcIn, DWORD dwDocTypeIn, BOOL fMultipleIn ); // IUnknown STDMETHOD( QueryInterface )( REFIID riid, LPVOID *ppv ); STDMETHOD_( ULONG, AddRef )( void ); STDMETHOD_( ULONG, Release )( void ); };