WindowsXP-SP1/windows/oleacc/oleacc/classinfo.h
2020-09-30 16:53:49 +02:00

124 lines
3.2 KiB
C

// Copyright (c) 1996-2000 Microsoft Corporation
// --------------------------------------------------------------------------
//
// classinfo
//
// Information about the individual proxy classes
//
// We could put this information in each class; but that would mean that
// changes would require touching all the class files.
// Centralizing this means that we only have a couple of files to change
// if we need to add more information across all classes.
//
// --------------------------------------------------------------------------
typedef HRESULT (* LPFNCREATE)(HWND, long, REFIID, void**);
//
// lpfnCreate and fBitAgnostic are only used by classes created via the classmap.
//
struct CLASSINFO
{
LPFNCREATE lpfnCreate;
BOOL fBitAgnostic; // Works across 64/32 boundaries
LPCTSTR szClassName; // Friendly name of class to use in version info
BOOL fSupportsAnnotation; // Is annotation supported?
DWORD dwObjId; // Objid used when building annotation key.
};
extern CLASSINFO g_ClassInfo[ ];
// This list must be kept in sync with the array of classinfo's.
enum CLASS_ENUM
{
CLASS_NONE = -1, // For classes that don't use the classinfo.
// General non-client stuff
CLASS_CaretObject = 0,
CLASS_ClientObject,
CLASS_CursorObject,
CLASS_MenuBarObject,
CLASS_ScrollBarObject,
CLASS_SizeGripObject,
CLASS_SysMenuBarObject,
CLASS_TitleBarObject,
CLASS_WindowObject,
// Client types - USER
CLASS_ButtonClient,
CLASS_ComboClient,
CLASS_DialogClient,
CLASS_DesktopClient,
CLASS_EditClient,
CLASS_ListBoxClient,
CLASS_MDIClient,
CLASS_MenuPopupClient,
CLASS_ScrollBarClient,
CLASS_StaticClient,
CLASS_SwitchClient,
// Client types - ComCtl32
CLASS_StatusBarClient,
CLASS_ToolBarClient,
CLASS_ProgressBarClient,
CLASS_AnimatedClient,
CLASS_TabControlClient,
CLASS_HotKeyClient,
CLASS_HeaderClient,
CLASS_SliderClient,
CLASS_ListViewClient,
CLASS_UpDownClient,
CLASS_ToolTipsClient,
CLASS_TreeViewClient,
CLASS_CalendarClient,
CLASS_DatePickerClient,
CLASS_IPAddressClient,
#ifndef OLEACC_NTBUILD
CLASS_HtmlClient,
// SDM32
CLASS_SdmClientA,
#endif OLEACC_NTBUILD
// Window types
CLASS_ListBoxWindow,
CLASS_MenuPopupWindow,
// Other classes - these are created directly - and don't appear in the classmaps
CLASS_MenuObject,
CLASS_MenuItemObject,
#ifndef OLEACC_NTBUILD
CLASS_HtmlImageMap,
CLASS_SdmList,
#endif // OLEACC_NTBUILD
CLASS_LAST // Must be last entry; value = # of classes.
};
// All classes up to (but excluding) this one can be referred to by index values
// when sending WM_GETOBJECT/OBJID_QUERYCLASSNAMEIDX.
#define QUERYCLASSNAME_CLASSES (CLASS_IPAddressClient+1)
// We actually use (index + 65536) - to keep the return value
// out of the way of apps which return small intergers for
// WM_GETOBJECT even though they shouldn't (ie. Notes)
#define QUERYCLASSNAME_BASE 65536