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.
 
 
 
 
 
 

304 lines
16 KiB

#ifndef _WIN_API_H_
#define _WIN_API_H_
#include <windows.h>
#include <commctrl.h>
#ifdef __cplusplus
extern "C" {
#endif
//----------------------------------------------------------------
//Common
//----------------------------------------------------------------
#ifndef UNDER_CE
extern BOOL WINAPI WinSetWindowTextA_CP(UINT codePage, HWND hWnd, LPCSTR lpString);
extern int WINAPI WinGetWindowTextA_CP(UINT codePage, HWND hWnd, LPSTR lpString, int nMaxCount);
extern int WINAPI WinGetWindowTextLengthA_CP(UINT codePage, HWND hWnd);
extern BOOL WINAPI WinSetWindowTextW_CP(UINT codePage, HWND hWnd, LPCWSTR lpString);
extern int WINAPI WinGetWindowTextW_CP(UINT codePage, HWND hWnd, LPWSTR lpString, int nMaxCount);
extern int WINAPI WinGetWindowTextLengthW_CP(UINT codePage, HWND hWnd);
#endif
#if defined(UNICODE) || defined(_UNICODE) || !defined(AWBOTH)
#define WinSendMessage SendMessage
#define WinPostMessage PostMessage
#define WinPeekMessage PeekMessage
#define WinDispatchMessage DispatchMessage
#define WinTranslateMessage TranslateMessage
#define WinSetWindowLong SetWindowLong
#define WinGetWindowLong GetWindowLong
#define WinCallWindowProc CallWindowProc
#define WinDefWindowProc DefWindowProc
#define WinIsDialogMessage IsDialogMessage
#define WinDefWindowProc DefWindowProc
#define WinTranslateAccelerator TranslateAccelerator
#define WinMessageBoxA MessageBoxA
#define WinMessageBoxW MessageBoxW
#define WinSetWindowTextA SetWindowTextA
#define WinSetWindowTextW SetWindowTextW
#define WinGetWindowTextA GetWindowTextA
#define WinGetWindowTextW GetWindowTextW
#define WinGetWindowTextLengthA GetWindowTextLengthA
#define WinGetWindowTextLengthW GetWindowTextLengthW
#ifdef UNDER_CE
#define WinSetWindowTextW_CP(_cp, _h, _s) WinSetWindowTextW((_h), (_s))
#define WinGetWindowTextW_CP(_cp, _h, _s, _n) WinGetWindowTextW((_h), (_s), (_n))
#define WinGetWindowTextLengthW_CP(_cp, _h) WinGetWindowTextLengthW(_h)
#endif
#ifdef _WIN64
#define WinSetUserData(_h, _l) SetWindowLongPtr(_h, GWLP_USERDATA, (LONG_PTR)_l)
#define WinGetUserData(_h) GetWindowLongPtr(_h, GWLP_USERDATA)
#define WinSetUserDlgData(_h, _ud) SetWindowLongPtr(_h, DWLP_USER, (LONG_PTR)_ud)
#define WinGetUserDlgData(_h) GetWindowLongPtr(_h, DWLP_USER)
#define WinSetMsgResult(_h, _ud) SetWindowLongPtr(_h, DWLP_MSGRESULT, (LONG_PTR)_ud)
#define WinGetMsgResult(_h) GetWindowLongPtr(_h, DWLP_MSGRESULT)
#define WinSetWndProc(_h, _proc) (WNDPROC)SetWindowLongPtr(_h, GWLP_WNDPROC, (WNDPROC)_proc)
#define WinGetWndProc(_h) (WNDPROC)GetWindowLongPtr(_h, GWLP_WNDPROC)
#define WinGetInstanceHandle(_h) (HINSTANCE)GetWindowLongPtr(_h, GWLP_HINSTANCE)
#else //!_WIN64
#define WinSetUserData(_h, _l) SetWindowLong(_h, GWL_USERDATA, (LONG)_l)
#define WinGetUserData(_h) GetWindowLong(_h, GWL_USERDATA)
#define WinSetUserDlgData(_h, _ud) SetWindowLong(_h, DWL_USER, (LONG)_ud)
#define WinGetUserDlgData(_h) GetWindowLong(_h, DWL_USER)
#define WinSetMsgResult(_h, _ud) SetWindowLong(_h, DWL_MSGRESULT, (LONG)_ud)
#define WinGetMsgResult(_h) GetWindowLong(_h, DWL_MSGRESULT)
#define WinSetWndProc(_h, _proc) SetWindowLong(_h, GWL_WNDPROC, (LONG)_proc)
#define WinGetWndProc(_h) GetWindowLong(_h, GWL_WNDPROC)
#define WinGetInstanceHandle(_h) (HINSTANCE)GetWindowLong(_h, GWL_HINSTANCE)
#define WinSetUserPtr(_h, _lp) WinSetUserData(_h, _lp)
#define WinGetUserPtr(_h) WinGetUserData(_h)
#define WinSetStyle(_h, _s) (DWORD)SetWindowLong(_h, GWL_STYLE, _s)
#define WinGetStyle(_h) (DWORD)GetWindowLong(_h, GWL_STYLE)
#define WinSetExStyle(_h, _s) (DWORD)SetWindowLong(_h, GWL_EXSTYLE, (LONG)_s)
#define WinGetExStyle(_h) (DWORD)GetWindowLong(_h, GWL_EXSTYLE)
#endif
#else //if defined(UNICODE) || defined(_UNICODE) || !defined(AWBOTH)---
extern LRESULT WINAPI WinSendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
extern BOOL WINAPI WinPostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
extern BOOL WINAPI WinPeekMessage(LPMSG lpMsg,
HWND hWnd,
UINT wMsgFilterMin,
UINT wMsgFilterMax,
UINT wRemoveMsg);
#define WinTranslateMessage TranslateMessage
extern LRESULT WINAPI WinDispatchMessage(CONST MSG *lpMsg);
extern LONG WINAPI WinSetWindowLong(HWND hWnd, int nIndex, LONG dwNewLong);
extern LONG WINAPI WinGetWindowLong(HWND hWnd, int nIndex);
extern LRESULT WINAPI WinCallWindowProc(WNDPROC lpPrevWndFunc,
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam);
extern LRESULT WINAPI WinDefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
extern BOOL WINAPI WinIsDialogMessage(HWND hDlg, LPMSG lpMsg);
extern int WINAPI WinTranslateAccelerator(HWND hWnd, HACCEL hAccTable, LPMSG lpMsg);
extern int WINAPI WinMessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);
extern int WINAPI WinMessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);
#define WinSetWindowTextA(_h, _lp) WinSetWindowTextA_CP(CP_ACP, _h, _lp)
#define WinGetWindowTextA(_h, _lp, _c) WinGetWindowTextA_CP(CP_ACP, _h, _lp, _c)
#define WinSetWindowTextW(_h, _lp) WinSetWindowTextW_CP(CP_ACP, _h, _lp)
#define WinGetWindowTextW(_h, _lp, _c) WinGetWindowTextW_CP(CP_ACP, _h, _lp, _c)
#ifdef _WIN64
extern LONG_PTR WINAPI WinSetUserData(HWND hwnd, LONG_PTR lUserData);
extern LONG_PTR WINAPI WinGetUserData(HWND hwnd);
extern LONG_PTR WINAPI WinSetUserDlgData(HWND hwnd, LONG_PTR lUserData);
extern LONG_PTR WINAPI WinGetUserDlgData(HWND hwnd);
extern LONG_PTR WINAPI WinSetMsgResult(HWND hwnd, LONG_PTR lUserData);
extern LONG_PTR WINAPI WinGetMsgResult(HWND hwnd);
#else
extern LONG WINAPI WinSetUserData(HWND hwnd, LONG lUserData);
extern LONG WINAPI WinGetUserData(HWND hwnd);
extern LONG WINAPI WinSetUserDlgData(HWND hwnd, LONG lUserData);
extern LONG WINAPI WinGetUserDlgData(HWND hwnd);
extern LONG WINAPI WinSetMsgResult(HWND hwnd, LONG lUserData);
extern LONG WINAPI WinGetMsgResult(HWND hwnd);
#endif
extern LPVOID WINAPI WinSetUserPtr(HWND hwnd, LPVOID lpVoid);
extern LPVOID WINAPI WinGetUserPtr(HWND hwnd);
extern WNDPROC WINAPI WinSetWndProc(HWND hwnd, WNDPROC lpfnWndProc);
extern WNDPROC WINAPI WinGetWndProc(HWND hwnd);
extern DWORD WINAPI WinSetStyle(HWND hwnd, DWORD dwStyle);
extern DWORD WINAPI WinGetStyle(HWND hwnd);
extern DWORD WINAPI WinSetExStyle(HWND hwnd, DWORD dwStyle);
extern DWORD WINAPI WinGetExStyle(HWND hwnd);
extern HINSTANCE WINAPI WinGetInstanceHandle(HWND hwnd);
#endif //End of --if defined(UNICODE) || defined(_UNICODE) || !defined(AWBOTH)---
//----------------------------------------------------------------
// ComboBox common api
//----------------------------------------------------------------
#ifndef UNDER_CE
INT CB_AddStringA (HWND hwndCtl, LPCSTR lpsz);
INT CB_FindStringA (HWND hwndCtl, INT indexStart, LPCSTR lpszFind);
INT CB_InsertStringA (HWND hwndCtl, INT index, LPCSTR lpsz);
INT CB_GetLBTextLenA (HWND hwndCtl, INT index);
INT CB_GetLBTextA (HWND hwndCtl, INT index, LPSTR lpszBuffer);
INT CB_FindStringExactA (HWND hwndCtl, INT indexStart, LPCSTR lpszFind);
INT CB_SelectStringA (HWND hwndCtl, INT indexStart, LPCSTR lpszSelect);
#endif
INT CB_AddStringW (HWND hwndCtl, LPCWSTR lpsz);
INT CB_InsertStringW (HWND hwndCtl, INT index, LPCWSTR lpsz);
INT CB_GetLBTextLenW (HWND hwndCtl, INT index);
INT CB_GetLBTextW (HWND hwndCtl, INT index, LPWSTR lpszBuffer);
INT CB_FindStringW (HWND hwndCtl, INT indexStart, LPCWSTR lpszFind);
INT CB_FindStringExactW (HWND hwndCtl, INT indexStart, LPCWSTR lpszFind);
INT CB_SelectStringW (HWND hwndCtl, INT indexStart, LPCWSTR lpszSelect);
//----------------------------------------------------------------
// ComboBox macro
//----------------------------------------------------------------
#define WinComboBox_Enable(hwndCtl, fEnable) EnableWindow((hwndCtl), (fEnable))
#define WinComboBox_GetText(hwndCtl, lpch, cchMax) GetWindowText((hwndCtl), (lpch), (cchMax))
#define WinComboBox_GetTextA(hwndCtl, lpch, cchMax) WinGetWindowTextA((hwndCtl), (lpch), (cchMax))
#define WinComboBox_GetTextW(hwndCtl, lpch, cchMax) WinGetWindowTextW((hwndCtl), (lpch), (cchMax))
#define WinComboBox_GetTextLength(hwndCtl) GetWindowTextLength(hwndCtl)
#define WinComboBox_GetTextLengthA(hwndCtl) WinGetWindowTextLengthA(hwndCtl)
#define WinComboBox_GetTextLengthW(hwndCtl) WinGetWindowTextLengthW(hwndCtl)
#define WinComboBox_SetText(hwndCtl, lpsz) SetWindowText((hwndCtl), (lpsz))
#define WinComboBox_SetTextA(hwndCtl, lpsz) WinSetWindowTextA((hwndCtl), (lpsz))
#define WinComboBox_SetTextW(hwndCtl, lpsz) WinSetWindowTextW((hwndCtl), (lpsz))
#define WinComboBox_LimitText(hwndCtl, cchLimit) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_LIMITTEXT, \
(WPARAM)(int)(cchLimit), \
0L))
#define WinComboBox_GetEditSel(hwndCtl) ((DWORD)WinSendMessage((hwndCtl), \
CB_GETEDITSEL, \
0L, 0L))
#define WinComboBox_SetEditSel(hwndCtl, ichStart, ichEnd) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_SETEDITSEL, \
0L, \
MAKELPARAM((ichStart), \
(ichEnd))))
#define WinComboBox_GetCount(hwndCtl) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_GETCOUNT, \
0L, 0L))
#define WinComboBox_ResetContent(hwndCtl) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_RESETCONTENT, \
0L, 0L))
#define WinComboBox_AddString(hwndCtl, lpsz) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_ADDSTRING, \
0L, \
(LPARAM)(LPCTSTR)(lpsz)))
#define WinComboBox_AddStringA(hwndCtl, lpsz) CB_AddStringA((hwndCtl), lpsz)
#define WinComboBox_AddStringW(hwndCtl, lpsz) CB_AddStringW((hwndCtl), lpsz)
#define WinComboBox_InsertString(hwndCtl, index, lpsz) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_INSERTSTRING, \
(WPARAM)(int)(index), \
(LPARAM)(LPCTSTR)(lpsz)))
#define WinComboBox_InsertStringA(hwndCtl, index, lpsz) CB_InsertStringA((hwndCtl), index, lpsz)
#define WinComboBox_InsertStringW(hwndCtl, index, lpsz) CB_InsertStringW((hwndCtl), index, lpsz)
#define WinComboBox_AddItemData(hwndCtl, data) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_ADDSTRING, \
0L, \
(LPARAM)(data)))
#define WinComboBox_InsertItemData(hwndCtl, index, data) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_INSERTSTRING, \
(WPARAM)(int)(index), \
(LPARAM)(data)))
#define WinComboBox_DeleteString(hwndCtl, index) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_DELETESTRING, \
(WPARAM)(int)(index), \
0L))
#define WinComboBox_GetLBTextLen(hwndCtl, index) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_GETLBTEXTLEN, \
(WPARAM)(int)(index), \
0L))
//#define WinComboBox_GetLBTextLenA(hwndCtl, index) CB_GetLBTextLenA((hwndCtl), (index))
//#define WinComboBox_GetLBTextLenW(hwndCtl, index) CB_GetLBTextLenW((hwndCtl), (index))
#define WinComboBox_GetLBText(hwndCtl, index, lpszBuffer) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_GETLBTEXT, \
(WPARAM)(int)(index), \
(LPARAM)(LPCTSTR)(lpszBuffer)))
#define WinComboBox_GetLBTextA(hwndCtl, index, lpszBuffer) CB_GetLBTextA((hwndCtl), (index), lpszBuffer)
#define WinComboBox_GetLBTextW(hwndCtl, index, lpszBuffer) CB_GetLBTextW((hwndCtl), (index), lpszBuffer)
#define WinComboBox_GetItemData(hwndCtl, index) ((LRESULT)(DWORD)WinSendMessage((hwndCtl), \
CB_GETITEMDATA, \
(WPARAM)(int)(index), \
0L))
#define WinComboBox_SetItemData(hwndCtl, index, data) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_SETITEMDATA, \
(WPARAM)(int)(index), \
(LPARAM)(data)))
#define WinComboBox_FindString(hwndCtl, indexStart, lpszFind) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_FINDSTRING, \
(WPARAM)(int)(indexStart), \
(LPARAM)(LPCTSTR)(lpszFind)))
#define WinComboBox_FindStringA(hwndCtl,indexStart,lpszFind) CB_FindStringA((hwndCtl), indexStart,lpszFind)
#define WinComboBox_FindStringW(hwndCtl,indexStart,lpszFind) CB_FindStringW((hwndCtl), indexStart,lpszFind)
#define WinComboBox_FindItemData(hwndCtl, indexStart, data) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_FINDSTRING, \
(WPARAM)(int)(indexStart), \
(LPARAM)(data)))
#define WinComboBox_GetCurSel(hwndCtl) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_GETCURSEL, \
0L, 0L))
#define WinComboBox_SetCurSel(hwndCtl, index) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_SETCURSEL, \
(WPARAM)(int)(index), \
0L))
#define WinComboBox_SelectString(hwndCtl, indexStart, lpszSelect) ((int)WinSendMessage((hwndCtl), \
CB_SELECTSTRING, \
(WPARAM)(indexStart), \
(LPARAM)(lpszSelect)))
#define WinComboBox_SelectStringA(hwndCtl, indexStart, lpszSelect) CB_SelectStringA((hwndCtl), \
(indexStart), \
(lpszSelect))
#define WinComboBox_SelectStringW(hwndCtl, indexStart, lpszSelect) CB_SelectStringW((hwndCtl), \
(indexStart), \
(lpszSelect))
#define WinComboBox_SelectItemData(hwndCtl, indexStart, data) ((int)WinSendMessage((hwndCtl), \
CB_SELECTSTRING, \
(WPARAM)(indexStart), \
(LPARAM)(data)))
#define WinComboBox_Dir(hwndCtl, attrs, lpszFileSpec) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_DIR, \
(WPARAM)(UINT)(attrs), \
(LPARAM)(LPCTSTR)(lpszFileSpec)))
#define WinComboBox_ShowDropdown(hwndCtl, fShow) ((BOOL)(DWORD)WinSendMessage((hwndCtl), \
CB_SHOWDROPDOWN, \
(WPARAM)(BOOL)(fShow), \
0L))
#define WinComboBox_FindStringExact(hwndCtl, indexStart, lpszFind) ((int)(DWORD)WinSendMessage((hwndCtl), CB_FINDSTRINGEXACT, (WPARAM)(int)(indexStart), (LPARAM)(LPCTSTR)(lpszFind)))
#define WinComboBox_FindStringExactA(hwndCtl,indexStart,lpszFind) CB_FindStringExactA((hwndCtl), indexStart,lpszFind)
#define WinComboBox_FindStringExactW(hwndCtl,indexStart,lpszFind) CB_FindStringExactW((hwndCtl), indexStart,lpszFind)
#define WinComboBox_GetDroppedState(hwndCtl) ((BOOL)(DWORD)WinSendMessage((hwndCtl), \
CB_GETDROPPEDSTATE, \
0L, 0L))
#define WinComboBox_GetDroppedControlRect(hwndCtl, lprc) ((void)WinSendMessage((hwndCtl), \
CB_GETDROPPEDCONTROLRECT, \
0L, (LPARAM)(RECT *)(lprc)))
#define WinComboBox_GetItemHeight(hwndCtl) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_GETITEMHEIGHT, \
0L, 0L))
#define WinComboBox_SetItemHeight(hwndCtl, index, cyItem) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_SETITEMHEIGHT, \
(WPARAM)(int)(index), \
(LPARAM)(int)cyItem))
#define WinComboBox_GetExtendedUI(hwndCtl) ((UINT)(DWORD)WinSendMessage((hwndCtl), \
CB_GETEXTENDEDUI, \
0L, 0L))
#define WinComboBox_SetExtendedUI(hwndCtl, flags) ((int)(DWORD)WinSendMessage((hwndCtl), \
CB_SETEXTENDEDUI, \
(WPARAM)(UINT)(flags), \
0L))
#ifdef __cplusplus
};
#endif
#endif //_WIN_API_H_