//----------------------------------------------------------------------------- // // File: flddefhelp.h // Copyright (C) 1994-1997 Microsoft Corporation // All rights reserved. // // // //----------------------------------------------------------------------------- // RAID: LS42 Bug 46 fixed by MikeL // Pointer to a function to allow each column // type to have its own validation function. typedef BOOL (* PFNVALIDATE) (LPCTSTR, DWORD); // RAID: LS42 Bug 46 fixed by MikeL // Added pfnValidateFunc to allow each column // type to have its own validation function. //------------------------------------------------------------------------------ struct SBasicColumn { const WCHAR *szInternalName; long nID; UINT IDSName; UINT IDSHelp; CColumnVal::ColumnValType vt; Operators ops; BOOL fDisplay; BOOL fSort; BOOL fReadOnly; PFNVALIDATE pfnValidateFunc; }; struct SStringListColumn { SBasicColumn sBasic; UINT IDSStringList; }; #pragma warning(disable: 4275) // non dll-interface class 'foo' used // as base for dll-interface class 'bar' class LTAPIENTRY CColDefHelper : public CObject { public: CColDefHelper(HINSTANCE h); void SetBasicColumns(const SBasicColumn * pBasic, UINT nCntBasic); void SetStringColumns(const SStringListColumn * pStrings, UINT nCntStrings); CTableSchema * CreateSchema(const SchemaId &, UINT IDSDescription); private: HINSTANCE m_hInst; const SBasicColumn * m_pBasicColumns; const SStringListColumn *m_pStringColumns; UINT m_uiBasicCount; UINT m_uiStringCount; }; #pragma warning(default : 4275) const TCHAR COL_PICK_SEPARATOR = _T('\n'); #define BEGIN_BASIC_COLUMN_DEFS(var) \ const SBasicColumn var[] = \ { // RAID: LS42 Bug 46 fixed by MikeL // Added pfnValidateFunc to allow each column // type to have its own validate function. #define BASIC_COLUMN_DEF_ENTRY(name, nID, IDSName, IDSHelp, cvt, ops, fDisplay, fSort, fReadOnly, pfnValidateFunc) \ {name, nID, IDSName, IDSHelp, cvt, ops, fDisplay, fSort, fReadOnly, pfnValidateFunc} #define END_BASIC_COLUMN_DEFS() \ } #define BEGIN_STRING_LIST_COLUMN_DEFS(var) \ const SStringListColumn var[] = \ { // RAID: LS42 Bug 46 fixed by MikeL // Added pfnValidateFunc to allow each column // type to have its own validate function. #define STRING_LIST_COLUMN_ENTRY(name, nID, IDSName, IDSHelp, ops, fDisplay, fSort, fReadOnly, pfnValidateFunc, IDSList) \ { { name, nID, IDSName, IDSHelp, CColumnVal::cvtStringList, ops, fDisplay, fSort, fReadOnly, pfnValidateFunc }, IDSList} #define END_STRING_LIST_COLUMN_DEFS() \ }