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

120 lines
3.6 KiB
C

// Copyright (c) 1996-2000 Microsoft Corporation
// ----------------------------------------------------------------------------
// Win64Helper.h
//
// Helper function prototypes used by the comctl32 wrappers
//
// ----------------------------------------------------------------------------
#ifndef INC_OLE2
#include "oleacc_p.h"
#include "default.h"
#endif
#define NOSTATUSBAR
#define NOUPDOWN
#define NOMENUHELP
#define NOTRACKBAR
#define NODRAGLIST
#define NOTOOLBAR
#define NOHOTKEY
#define NOPROGRESS
#define NOTREEVIEW
#define NOANIMATE
#include <commctrl.h>
// if this W2K and not ALPHA enable 64b/32b interoperability
#if defined(UNICODE) && !defined(_M_AXP64)
#define ENABLE6432_INTEROP
#endif
// ComCtl V6 Listview structure - this has extra fields since the previous
// version. We define this structure explicitly here, so that we can compile
// in either NT build or in VS6 - we're not reliant on the lastest commctrl.h
// file.
#ifndef LVIF_COLUMNS
#define LVIF_COLUMNS 0x0200
#endif
struct LVITEM_V6
{
UINT mask;
int iItem;
int iSubItem;
UINT state;
UINT stateMask;
LPTSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
int iIndent;
// The following fields are new in V6.
int iGroupId;
UINT cColumns; // tile view columns
PUINT puColumns;
};
#ifndef LVGF_HEADER
#define LVGF_HEADER 0x00000001
#endif
#ifndef LVIF_GROUPID
#define LVIF_GROUPID 0x0100
#endif
#ifndef LVM_GETGROUPINFO
#define LVM_GETGROUPINFO (LVM_FIRST + 149)
#endif
struct LVGROUP_V6
{
UINT cbSize;
UINT mask;
LPTSTR pszHeader;
int cchHeader;
LPTSTR pszFooter;
int cchFooter;
int iGroupId;
UINT stateMask;
UINT state;
UINT uAlign;
};
#ifndef TTM_GETTITLE
#define TTM_GETTITLE (WM_USER + 35)
struct TTGETTITLE
{
DWORD dwSize;
UINT uTitleBitmap;
UINT cch;
WCHAR* pszTitle;
};
#endif
HRESULT SameBitness(HWND hwnd, BOOL *pfIsSameBitness);
// Why the unused 'dummy' variable? Only XSend_ToolTip_GetItem actually uses that param,
// but adding it to all these functions gives them the same number of params, and, with
// the exception of the struct field (LVITEM/HDITEM/etc), gives them the same signature.
// This allows for somewhat cleaner code in the implemetation (Win64Helper.cpp)
// Using a default value for that param means that calling code doesn't have to specify
// it, so the callers can ignore the fact that it is there.
HRESULT XSend_ListView_GetItem ( HWND hwnd, UINT uiMsg, WPARAM wParam, LVITEM * pItem, UINT dummy = 0 );
HRESULT XSend_ListView_SetItem ( HWND hwnd, UINT uiMsg, WPARAM wParam, LVITEM * pItem, UINT dummy = 0 );
HRESULT XSend_ListView_GetColumn ( HWND hwnd, UINT uiMsg, WPARAM wParam, LVCOLUMN * pItem, UINT dummy = 0 );
HRESULT XSend_ListView_V6_GetItem ( HWND hwnd, UINT uiMsg, WPARAM wParam, LVITEM_V6 * pItem, UINT dummy = 0 );
HRESULT XSend_ListView_V6_GetGroupInfo ( HWND hwnd, UINT uiMsg, WPARAM wParam, LVGROUP_V6 * pItem, UINT dummy = 0 );
HRESULT XSend_HeaderCtrl_GetItem ( HWND hwnd, UINT uiMsg, WPARAM wParam, HDITEM * pItem, UINT dummy = 0 );
HRESULT XSend_TabCtrl_GetItem ( HWND hwnd, UINT uiMsg, WPARAM wParam, TCITEM * pItem, UINT dummy = 0 );
HRESULT XSend_ToolTip_GetItem ( HWND hwnd, UINT uiMsg, WPARAM wParam, TOOLINFO * pItem, UINT cchTextMax );
HRESULT XSend_ToolTip_GetTitle ( HWND hwnd, UINT uiMsg, WPARAM wParam, TTGETTITLE * pItem, UINT dummy = 0 );