; 
; Exports of file NETUI2.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY NETUI2.dll
EXPORTS
; public: __cdecl ACCELTABLE::ACCELTABLE(class IDRESOURCE const & __ptr64) __ptr64
??0ACCELTABLE@@QEAA@AEBVIDRESOURCE@@@Z
; public: __cdecl ACCOUNT_NAMES_MLE::ACCOUNT_NAMES_MLE(class OWNER_WINDOW * __ptr64,unsigned int,unsigned short const * __ptr64,class NT_USER_BROWSER_DIALOG * __ptr64,int,unsigned long,enum FontType) __ptr64
??0ACCOUNT_NAMES_MLE@@QEAA@PEAVOWNER_WINDOW@@IPEBGPEAVNT_USER_BROWSER_DIALOG@@HKW4FontType@@@Z
; public: __cdecl ACTIVATION_EVENT::ACTIVATION_EVENT(unsigned int,unsigned __int64,__int64) __ptr64
??0ACTIVATION_EVENT@@QEAA@I_K_J@Z
; public: __cdecl ALIAS_STR::ALIAS_STR(unsigned short const * __ptr64) __ptr64
??0ALIAS_STR@@QEAA@PEBG@Z
; public: __cdecl ALLOC_STR::ALLOC_STR(unsigned short * __ptr64,unsigned int) __ptr64
??0ALLOC_STR@@QEAA@PEAGI@Z
; protected: __cdecl APPLICATION::APPLICATION(struct HINSTANCE__ * __ptr64,int,unsigned int,unsigned int,unsigned int,unsigned int) __ptr64
??0APPLICATION@@IEAA@PEAUHINSTANCE__@@HIIII@Z
; protected: __cdecl APP_WINDOW::APP_WINDOW(class NLS_STR const & __ptr64,class IDRESOURCE const & __ptr64,class IDRESOURCE const & __ptr64) __ptr64
??0APP_WINDOW@@IEAA@AEBVNLS_STR@@AEBVIDRESOURCE@@1@Z
; protected: __cdecl APP_WINDOW::APP_WINDOW(class XYPOINT,class XYDIMENSION,class NLS_STR const & __ptr64,class IDRESOURCE const & __ptr64,class IDRESOURCE const & __ptr64) __ptr64
??0APP_WINDOW@@IEAA@VXYPOINT@@VXYDIMENSION@@AEBVNLS_STR@@AEBVIDRESOURCE@@3@Z
; public: __cdecl ARRAY_CONTROLVAL_CID_PAIR::ARRAY_CONTROLVAL_CID_PAIR(unsigned int) __ptr64
??0ARRAY_CONTROLVAL_CID_PAIR@@QEAA@I@Z
; public: __cdecl ARRAY_CONTROLVAL_CID_PAIR::ARRAY_CONTROLVAL_CID_PAIR(class CONTROLVAL_CID_PAIR * __ptr64,unsigned int,int) __ptr64
??0ARRAY_CONTROLVAL_CID_PAIR@@QEAA@PEAVCONTROLVAL_CID_PAIR@@IH@Z
; public: __cdecl ARRAY_LIST_CONTROLVAL_CID_PAIR::ARRAY_LIST_CONTROLVAL_CID_PAIR(unsigned int) __ptr64
??0ARRAY_LIST_CONTROLVAL_CID_PAIR@@QEAA@I@Z
; public: __cdecl ARROW_BUTTON::ARROW_BUTTON(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int,unsigned int) __ptr64
??0ARROW_BUTTON@@QEAA@PEAVOWNER_WINDOW@@IIII@Z
; public: __cdecl ARROW_BUTTON::ARROW_BUTTON(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long) __ptr64
??0ARROW_BUTTON@@QEAA@PEAVOWNER_WINDOW@@IIIIVXYPOINT@@VXYDIMENSION@@K@Z
; public: __cdecl ASSOCHCFILE::ASSOCHCFILE(struct HINSTANCE__ * __ptr64,long,unsigned long,unsigned long) __ptr64
??0ASSOCHCFILE@@QEAA@PEAUHINSTANCE__@@JKK@Z
; public: __cdecl ASSOCHWNDDISP::ASSOCHWNDDISP(struct HWND__ * __ptr64,class DISPATCHER const * __ptr64) __ptr64
??0ASSOCHWNDDISP@@QEAA@PEAUHWND__@@PEBVDISPATCHER@@@Z
; public: __cdecl ASSOCHWNDPDLG::ASSOCHWNDPDLG(struct HWND__ * __ptr64,class DIALOG_WINDOW const * __ptr64) __ptr64
??0ASSOCHWNDPDLG@@QEAA@PEAUHWND__@@PEBVDIALOG_WINDOW@@@Z
; public: __cdecl ASSOCHWNDPWND::ASSOCHWNDPWND(struct HWND__ * __ptr64,class CLIENT_WINDOW const * __ptr64) __ptr64
??0ASSOCHWNDPWND@@QEAA@PEAUHWND__@@PEBVCLIENT_WINDOW@@@Z
; public: __cdecl ASSOCHWNDTHIS::ASSOCHWNDTHIS(struct HWND__ * __ptr64,void const * __ptr64) __ptr64
??0ASSOCHWNDTHIS@@QEAA@PEAUHWND__@@PEBX@Z
; protected: __cdecl ATOM_BASE::ATOM_BASE(unsigned short) __ptr64
??0ATOM_BASE@@IEAA@G@Z
; protected: __cdecl ATOM_BASE::ATOM_BASE(void) __ptr64
??0ATOM_BASE@@IEAA@XZ
; public: __cdecl AUDIT_CHECKBOXES::AUDIT_CHECKBOXES(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int,class NLS_STR const & __ptr64,class BITFIELD const & __ptr64) __ptr64
??0AUDIT_CHECKBOXES@@QEAA@PEAVOWNER_WINDOW@@IIIAEBVNLS_STR@@AEBVBITFIELD@@@Z
; public: __cdecl AUTO_CURSOR::AUTO_CURSOR(unsigned short const * __ptr64) __ptr64
??0AUTO_CURSOR@@QEAA@PEBG@Z
; protected: __cdecl BASE::BASE(void) __ptr64
??0BASE@@IEAA@XZ
; public: __cdecl BASE::BASE(class BASE const & __ptr64) __ptr64
??0BASE@@QEAA@AEBV0@@Z
; protected: __cdecl BASE_ELLIPSIS::BASE_ELLIPSIS(enum ELLIPSIS_STYLE) __ptr64
??0BASE_ELLIPSIS@@IEAA@W4ELLIPSIS_STYLE@@@Z
; public: __cdecl BASE_PASSWORD_DIALOG::BASE_PASSWORD_DIALOG(struct HWND__ * __ptr64,unsigned short const * __ptr64,unsigned int,unsigned int,unsigned long,unsigned short const * __ptr64,unsigned int,unsigned int,unsigned short const * __ptr64,unsigned int,unsigned short const * __ptr64) __ptr64
??0BASE_PASSWORD_DIALOG@@QEAA@PEAUHWND__@@PEBGIIK1II1I1@Z
; public: __cdecl BASE_SET_FOCUS_DLG::BASE_SET_FOCUS_DLG(struct HWND__ * __ptr64 const,enum SELECTION_TYPE,unsigned long,unsigned short const * __ptr64,unsigned long,unsigned short const * __ptr64,unsigned long) __ptr64
??0BASE_SET_FOCUS_DLG@@QEAA@QEAUHWND__@@W4SELECTION_TYPE@@KPEBGK2K@Z
; public: __cdecl BIT_MAP::BIT_MAP(class IDRESOURCE const & __ptr64) __ptr64
??0BIT_MAP@@QEAA@AEBVIDRESOURCE@@@Z
; public: __cdecl BIT_MAP::BIT_MAP(struct HBITMAP__ * __ptr64) __ptr64
??0BIT_MAP@@QEAA@PEAUHBITMAP__@@@Z
; public: __cdecl BLT_BACKGROUND_EDIT::BLT_BACKGROUND_EDIT(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0BLT_BACKGROUND_EDIT@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl BLT_COMBOBOX::BLT_COMBOBOX(class OWNER_WINDOW * __ptr64,unsigned int,int,enum FontType) __ptr64
??0BLT_COMBOBOX@@QEAA@PEAVOWNER_WINDOW@@IHW4FontType@@@Z
; public: __cdecl BLT_COMBOBOX::BLT_COMBOBOX(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType) __ptr64
??0BLT_COMBOBOX@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@@Z
; public: __cdecl BLT_DATE_SPIN_GROUP::BLT_DATE_SPIN_GROUP(class OWNER_WINDOW * __ptr64,class INTL_PROFILE const & __ptr64,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int) __ptr64
??0BLT_DATE_SPIN_GROUP@@QEAA@PEAVOWNER_WINDOW@@AEBVINTL_PROFILE@@IIIIIIIII@Z
; public: __cdecl BLT_LISTBOX::BLT_LISTBOX(class OWNER_WINDOW * __ptr64,unsigned int,int,enum FontType,int) __ptr64
??0BLT_LISTBOX@@QEAA@PEAVOWNER_WINDOW@@IHW4FontType@@H@Z
; public: __cdecl BLT_LISTBOX::BLT_LISTBOX(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType,int) __ptr64
??0BLT_LISTBOX@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@H@Z
; public: __cdecl BLT_LISTBOX_HAW::BLT_LISTBOX_HAW(class OWNER_WINDOW * __ptr64,unsigned int,int,enum FontType,int) __ptr64
??0BLT_LISTBOX_HAW@@QEAA@PEAVOWNER_WINDOW@@IHW4FontType@@H@Z
; public: __cdecl BLT_LISTBOX_HAW::BLT_LISTBOX_HAW(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType,int) __ptr64
??0BLT_LISTBOX_HAW@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@H@Z
; public: __cdecl BLT_MASTER_TIMER::BLT_MASTER_TIMER(void) __ptr64
??0BLT_MASTER_TIMER@@QEAA@XZ
; public: __cdecl BLT_SCRATCH::BLT_SCRATCH(unsigned int) __ptr64
??0BLT_SCRATCH@@QEAA@I@Z
; public: __cdecl BLT_TIME_SPIN_GROUP::BLT_TIME_SPIN_GROUP(class OWNER_WINDOW * __ptr64,class INTL_PROFILE const & __ptr64,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int) __ptr64
??0BLT_TIME_SPIN_GROUP@@QEAA@PEAVOWNER_WINDOW@@AEBVINTL_PROFILE@@IIIIIIIIII@Z
; public: __cdecl BROWSER_DOMAIN::BROWSER_DOMAIN(unsigned short const * __ptr64,void * __ptr64,int,int) __ptr64
??0BROWSER_DOMAIN@@QEAA@PEBGPEAXHH@Z
; public: __cdecl BROWSER_DOMAIN_CB::BROWSER_DOMAIN_CB(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0BROWSER_DOMAIN_CB@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl BROWSER_DOMAIN_LB::BROWSER_DOMAIN_LB(class OWNER_WINDOW * __ptr64,unsigned int,class BROWSER_DOMAIN_CB * __ptr64) __ptr64
??0BROWSER_DOMAIN_LB@@QEAA@PEAVOWNER_WINDOW@@IPEAVBROWSER_DOMAIN_CB@@@Z
; public: __cdecl BROWSER_DOMAIN_LBI::BROWSER_DOMAIN_LBI(class BROWSER_DOMAIN * __ptr64) __ptr64
??0BROWSER_DOMAIN_LBI@@QEAA@PEAVBROWSER_DOMAIN@@@Z
; public: __cdecl BROWSER_DOMAIN_LBI_PB::BROWSER_DOMAIN_LBI_PB(class BROWSER_DOMAIN_LBI * __ptr64) __ptr64
??0BROWSER_DOMAIN_LBI_PB@@QEAA@PEAVBROWSER_DOMAIN_LBI@@@Z
; public: __cdecl BROWSER_SUBJECT::BROWSER_SUBJECT(void) __ptr64
??0BROWSER_SUBJECT@@QEAA@XZ
; public: __cdecl BROWSER_SUBJECT_ITER::BROWSER_SUBJECT_ITER(class NT_USER_BROWSER_DIALOG * __ptr64) __ptr64
??0BROWSER_SUBJECT_ITER@@QEAA@PEAVNT_USER_BROWSER_DIALOG@@@Z
; protected: __cdecl BUTTON_CONTROL::BUTTON_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0BUTTON_CONTROL@@IEAA@PEAVOWNER_WINDOW@@I@Z
; protected: __cdecl BUTTON_CONTROL::BUTTON_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long) __ptr64
??0BUTTON_CONTROL@@IEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@K@Z
; public: __cdecl CANCEL_TASK_DIALOG::CANCEL_TASK_DIALOG(unsigned int,struct HWND__ * __ptr64,unsigned short const * __ptr64,unsigned __int64,long,enum ELLIPSIS_STYLE) __ptr64
??0CANCEL_TASK_DIALOG@@QEAA@IPEAUHWND__@@PEBG_KJW4ELLIPSIS_STYLE@@@Z
; public: __cdecl CHANGEABLE_SPIN_ITEM::CHANGEABLE_SPIN_ITEM(class CONTROL_WINDOW * __ptr64,unsigned long,unsigned long,unsigned long,int) __ptr64
??0CHANGEABLE_SPIN_ITEM@@QEAA@PEAVCONTROL_WINDOW@@KKKH@Z
; public: __cdecl CHECKBOX::CHECKBOX(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0CHECKBOX@@QEAA@PEAVOWNER_WINDOW@@I@Z
; protected: __cdecl CLIENT_WINDOW::CLIENT_WINDOW(unsigned long,class WINDOW const * __ptr64,unsigned short const * __ptr64) __ptr64
??0CLIENT_WINDOW@@IEAA@KPEBVWINDOW@@PEBG@Z
; protected: __cdecl CLIENT_WINDOW::CLIENT_WINDOW(void) __ptr64
??0CLIENT_WINDOW@@IEAA@XZ
; public: __cdecl COMBOBOX::COMBOBOX(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int) __ptr64
??0COMBOBOX@@QEAA@PEAVOWNER_WINDOW@@II@Z
; public: __cdecl COMBOBOX::COMBOBOX(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64) __ptr64
??0COMBOBOX@@QEAA@PEAVOWNER_WINDOW@@IIVXYPOINT@@VXYDIMENSION@@KPEBG@Z
; public: __cdecl CONSOLE_ELLIPSIS::CONSOLE_ELLIPSIS(enum ELLIPSIS_STYLE,int) __ptr64
??0CONSOLE_ELLIPSIS@@QEAA@W4ELLIPSIS_STYLE@@H@Z
; public: __cdecl CONTROLVAL_CID_PAIR::CONTROLVAL_CID_PAIR(unsigned int,class CONTROL_VALUE * __ptr64) __ptr64
??0CONTROLVAL_CID_PAIR@@QEAA@IPEAVCONTROL_VALUE@@@Z
; public: __cdecl CONTROLVAL_CID_PAIR::CONTROLVAL_CID_PAIR(void) __ptr64
??0CONTROLVAL_CID_PAIR@@QEAA@XZ
; private: __cdecl CONTROL_ENTRY::CONTROL_ENTRY(class CONTROL_WINDOW * __ptr64) __ptr64
??0CONTROL_ENTRY@@AEAA@PEAVCONTROL_WINDOW@@@Z
; public: __cdecl CONTROL_EVENT::CONTROL_EVENT(unsigned int,unsigned int) __ptr64
??0CONTROL_EVENT@@QEAA@II@Z
; public: __cdecl CONTROL_EVENT::CONTROL_EVENT(unsigned int,unsigned __int64,__int64) __ptr64
??0CONTROL_EVENT@@QEAA@I_K_J@Z
; public: __cdecl CONTROL_GROUP::CONTROL_GROUP(class CONTROL_GROUP * __ptr64) __ptr64
??0CONTROL_GROUP@@QEAA@PEAV0@@Z
; public: __cdecl CONTROL_TABLE::CONTROL_TABLE(void) __ptr64
??0CONTROL_TABLE@@QEAA@XZ
; public: __cdecl CONTROL_VALUE::CONTROL_VALUE(class CONTROL_GROUP * __ptr64) __ptr64
??0CONTROL_VALUE@@QEAA@PEAVCONTROL_GROUP@@@Z
; public: __cdecl CONTROL_WINDOW::CONTROL_WINDOW(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0CONTROL_WINDOW@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl CONTROL_WINDOW::CONTROL_WINDOW(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64) __ptr64
??0CONTROL_WINDOW@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBG@Z
; public: __cdecl CUSTOM_CONTROL::CUSTOM_CONTROL(class CONTROL_WINDOW * __ptr64) __ptr64
??0CUSTOM_CONTROL@@QEAA@PEAVCONTROL_WINDOW@@@Z
; public: __cdecl DEC_SLT::DEC_SLT(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int) __ptr64
??0DEC_SLT@@QEAA@PEAVOWNER_WINDOW@@II@Z
; public: __cdecl DEC_SLT::DEC_SLT(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64,unsigned int) __ptr64
??0DEC_SLT@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBGI@Z
; public: __cdecl DEVICE_COMBO::DEVICE_COMBO(class OWNER_WINDOW * __ptr64,unsigned int,enum LMO_DEVICE,enum LMO_DEV_USAGE) __ptr64
??0DEVICE_COMBO@@QEAA@PEAVOWNER_WINDOW@@IW4LMO_DEVICE@@W4LMO_DEV_USAGE@@@Z
; public: __cdecl DEVICE_CONTEXT::DEVICE_CONTEXT(struct HDC__ * __ptr64) __ptr64
??0DEVICE_CONTEXT@@QEAA@PEAUHDC__@@@Z
; protected: __cdecl DIALOG_WINDOW::DIALOG_WINDOW(unsigned char const * __ptr64,unsigned int,struct HWND__ * __ptr64,int) __ptr64
??0DIALOG_WINDOW@@IEAA@PEBEIPEAUHWND__@@H@Z
; public: __cdecl DIALOG_WINDOW::DIALOG_WINDOW(class IDRESOURCE const & __ptr64,class PWND2HWND const & __ptr64,int) __ptr64
??0DIALOG_WINDOW@@QEAA@AEBVIDRESOURCE@@AEBVPWND2HWND@@H@Z
; public: __cdecl DISK_SPACE_SUBCLASS::DISK_SPACE_SUBCLASS(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,long,long,long,long,long,int) __ptr64
??0DISK_SPACE_SUBCLASS@@QEAA@PEAVOWNER_WINDOW@@IIIIIJJJJJH@Z
; protected: __cdecl DISPATCHER::DISPATCHER(class WINDOW * __ptr64) __ptr64
??0DISPATCHER@@IEAA@PEAVWINDOW@@@Z
; public: __cdecl DISPLAY_CONTEXT::DISPLAY_CONTEXT(struct HWND__ * __ptr64) __ptr64
??0DISPLAY_CONTEXT@@QEAA@PEAUHWND__@@@Z
; public: __cdecl DISPLAY_CONTEXT::DISPLAY_CONTEXT(class WINDOW * __ptr64) __ptr64
??0DISPLAY_CONTEXT@@QEAA@PEAVWINDOW@@@Z
; public: __cdecl DISPLAY_CONTEXT::DISPLAY_CONTEXT(class WINDOW * __ptr64,struct HDC__ * __ptr64) __ptr64
??0DISPLAY_CONTEXT@@QEAA@PEAVWINDOW@@PEAUHDC__@@@Z
; public: __cdecl DISPLAY_MAP::DISPLAY_MAP(unsigned int) __ptr64
??0DISPLAY_MAP@@QEAA@I@Z
; public: __cdecl DISPLAY_TABLE::DISPLAY_TABLE(unsigned int,unsigned int const * __ptr64) __ptr64
??0DISPLAY_TABLE@@QEAA@IPEBI@Z
; public: __cdecl DLGLOAD::DLGLOAD(class IDRESOURCE const & __ptr64,struct HWND__ * __ptr64,__int64 (__cdecl*)(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64),int) __ptr64
??0DLGLOAD@@QEAA@AEBVIDRESOURCE@@PEAUHWND__@@P6A_J1I_K_J@ZH@Z
; public: __cdecl DLGLOAD::DLGLOAD(unsigned char const * __ptr64,unsigned int,struct HWND__ * __ptr64,__int64 (__cdecl*)(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64),int) __ptr64
??0DLGLOAD@@QEAA@PEBEIPEAUHWND__@@P6A_J1I_K_J@ZH@Z
; public: __cdecl DLIST_OF_SPIN_ITEM::DLIST_OF_SPIN_ITEM(int) __ptr64
??0DLIST_OF_SPIN_ITEM@@QEAA@H@Z
; public: __cdecl DMID_DTE::DMID_DTE(unsigned int) __ptr64
??0DMID_DTE@@QEAA@I@Z
; protected: __cdecl DM_DTE::DM_DTE(void) __ptr64
??0DM_DTE@@IEAA@XZ
; public: __cdecl DM_DTE::DM_DTE(class DISPLAY_MAP * __ptr64) __ptr64
??0DM_DTE@@QEAA@PEAVDISPLAY_MAP@@@Z
; public: __cdecl DOMAIN_COMBO::DOMAIN_COMBO(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int) __ptr64
??0DOMAIN_COMBO@@QEAA@PEAVOWNER_WINDOW@@III@Z
; public: __cdecl DOMAIN_FILL_THREAD::DOMAIN_FILL_THREAD(class NT_USER_BROWSER_DIALOG * __ptr64,class BROWSER_DOMAIN * __ptr64,class ADMIN_AUTHORITY const * __ptr64) __ptr64
??0DOMAIN_FILL_THREAD@@QEAA@PEAVNT_USER_BROWSER_DIALOG@@PEAVBROWSER_DOMAIN@@PEBVADMIN_AUTHORITY@@@Z
; protected: __cdecl DTE::DTE(void) __ptr64
??0DTE@@IEAA@XZ
; public: __cdecl EDIT_CONTROL::EDIT_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int) __ptr64
??0EDIT_CONTROL@@QEAA@PEAVOWNER_WINDOW@@II@Z
; public: __cdecl EDIT_CONTROL::EDIT_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64,unsigned int) __ptr64
??0EDIT_CONTROL@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBGI@Z
; public: __cdecl ELAPSED_TIME_CONTROL::ELAPSED_TIME_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,class SLT & __ptr64,long,long,long,class SLT & __ptr64,class SLT & __ptr64,long,long,long,long,int) __ptr64
??0ELAPSED_TIME_CONTROL@@QEAA@PEAVOWNER_WINDOW@@IIIIIIAEAVSLT@@JJJ11JJJJH@Z
; public: __cdecl EVENT::EVENT(unsigned int,unsigned __int64,__int64) __ptr64
??0EVENT@@QEAA@I_K_J@Z
; public: __cdecl EXPANDABLE_DIALOG::EXPANDABLE_DIALOG(unsigned short const * __ptr64,struct HWND__ * __ptr64,unsigned int,unsigned int,int) __ptr64
??0EXPANDABLE_DIALOG@@QEAA@PEBGPEAUHWND__@@IIH@Z
; public: __cdecl FOCUSDLG_DATA_THREAD::FOCUSDLG_DATA_THREAD(struct HWND__ * __ptr64,unsigned long,enum SELECTION_TYPE,unsigned short const * __ptr64,unsigned long) __ptr64
??0FOCUSDLG_DATA_THREAD@@QEAA@PEAUHWND__@@KW4SELECTION_TYPE@@PEBGK@Z
; public: __cdecl FOCUS_CHECKBOX::FOCUS_CHECKBOX(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0FOCUS_CHECKBOX@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl FONT::FONT(struct tagLOGFONTW const & __ptr64) __ptr64
??0FONT@@QEAA@AEBUtagLOGFONTW@@@Z
; public: __cdecl FONT::FONT(unsigned short const * __ptr64,unsigned char,int,enum FontAttributes) __ptr64
??0FONT@@QEAA@PEBGEHW4FontAttributes@@@Z
; public: __cdecl FONT::FONT(enum FontType) __ptr64
??0FONT@@QEAA@W4FontType@@@Z
; protected: __cdecl FORWARDING_BASE::FORWARDING_BASE(class BASE * __ptr64) __ptr64
??0FORWARDING_BASE@@IEAA@PEAVBASE@@@Z
; protected: __cdecl GET_FNAME_BASE_DLG::GET_FNAME_BASE_DLG(class OWNER_WINDOW * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
??0GET_FNAME_BASE_DLG@@IEAA@PEAVOWNER_WINDOW@@PEBGK@Z
; public: __cdecl GET_OPEN_FILENAME_DLG::GET_OPEN_FILENAME_DLG(class OWNER_WINDOW * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
??0GET_OPEN_FILENAME_DLG@@QEAA@PEAVOWNER_WINDOW@@PEBGK@Z
; public: __cdecl GET_SAVE_FILENAME_DLG::GET_SAVE_FILENAME_DLG(class OWNER_WINDOW * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
??0GET_SAVE_FILENAME_DLG@@QEAA@PEAVOWNER_WINDOW@@PEBGK@Z
; public: __cdecl GLOBAL_ATOM::GLOBAL_ATOM(unsigned short const * __ptr64) __ptr64
??0GLOBAL_ATOM@@QEAA@PEBG@Z
; public: __cdecl GRAPHICAL_BUTTON::GRAPHICAL_BUTTON(class OWNER_WINDOW * __ptr64,unsigned int,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0GRAPHICAL_BUTTON@@QEAA@PEAVOWNER_WINDOW@@IPEBG11@Z
; public: __cdecl GRAPHICAL_BUTTON::GRAPHICAL_BUTTON(class OWNER_WINDOW * __ptr64,unsigned int,unsigned short const * __ptr64,unsigned short const * __ptr64,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64) __ptr64
??0GRAPHICAL_BUTTON@@QEAA@PEAVOWNER_WINDOW@@IPEBG1VXYPOINT@@VXYDIMENSION@@K1@Z
; public: __cdecl GRAPHICAL_BUTTON_WITH_DISABLE::GRAPHICAL_BUTTON_WITH_DISABLE(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int,unsigned int) __ptr64
??0GRAPHICAL_BUTTON_WITH_DISABLE@@QEAA@PEAVOWNER_WINDOW@@IIII@Z
; public: __cdecl GRAPHICAL_BUTTON_WITH_DISABLE::GRAPHICAL_BUTTON_WITH_DISABLE(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long) __ptr64
??0GRAPHICAL_BUTTON_WITH_DISABLE@@QEAA@PEAVOWNER_WINDOW@@IIIIVXYPOINT@@VXYDIMENSION@@K@Z
; public: __cdecl HAS_MESSAGE_PUMP::HAS_MESSAGE_PUMP(void) __ptr64
??0HAS_MESSAGE_PUMP@@QEAA@XZ
; public: __cdecl HAW_FOR_HAWAII_INFO::HAW_FOR_HAWAII_INFO(void) __ptr64
??0HAW_FOR_HAWAII_INFO@@QEAA@XZ
; public: __cdecl HIDDEN_CONTROL::HIDDEN_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0HIDDEN_CONTROL@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl HIER_LBI::HIER_LBI(int) __ptr64
??0HIER_LBI@@QEAA@H@Z
; public: __cdecl HIER_LBI_ITERATOR::HIER_LBI_ITERATOR(class HIER_LBI * __ptr64,int) __ptr64
??0HIER_LBI_ITERATOR@@QEAA@PEAVHIER_LBI@@H@Z
; public: __cdecl HIER_LISTBOX::HIER_LISTBOX(class OWNER_WINDOW * __ptr64,unsigned int,int,enum FontType,int) __ptr64
??0HIER_LISTBOX@@QEAA@PEAVOWNER_WINDOW@@IHW4FontType@@H@Z
; public: __cdecl HIER_LISTBOX::HIER_LISTBOX(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType,int) __ptr64
??0HIER_LISTBOX@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@H@Z
; public: __cdecl H_SPLITTER_BAR::H_SPLITTER_BAR(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0H_SPLITTER_BAR@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl H_SPLITTER_BAR::H_SPLITTER_BAR(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long) __ptr64
??0H_SPLITTER_BAR@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@K@Z
; public: __cdecl ICANON_SLE::ICANON_SLE(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,int) __ptr64
??0ICANON_SLE@@QEAA@PEAVOWNER_WINDOW@@IIH@Z
; public: __cdecl ICANON_SLE::ICANON_SLE(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64,unsigned int,int) __ptr64
??0ICANON_SLE@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBGIH@Z
; public: __cdecl ICON_CONTROL::ICON_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0ICON_CONTROL@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl ICON_CONTROL::ICON_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,class IDRESOURCE const & __ptr64) __ptr64
??0ICON_CONTROL@@QEAA@PEAVOWNER_WINDOW@@IAEBVIDRESOURCE@@@Z
; public: __cdecl ICON_CONTROL::ICON_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,class IDRESOURCE const & __ptr64,unsigned long,unsigned short const * __ptr64) __ptr64
??0ICON_CONTROL@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@AEBVIDRESOURCE@@KPEBG@Z
; public: __cdecl ICON_CONTROL::ICON_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64) __ptr64
??0ICON_CONTROL@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBG@Z
; public: __cdecl IDRESOURCE::IDRESOURCE(unsigned int) __ptr64
??0IDRESOURCE@@QEAA@I@Z
; public: __cdecl IDRESOURCE::IDRESOURCE(unsigned short const * __ptr64) __ptr64
??0IDRESOURCE@@QEAA@PEBG@Z
; public: __cdecl ITER_CTRL::ITER_CTRL(class OWNER_WINDOW const * __ptr64) __ptr64
??0ITER_CTRL@@QEAA@PEBVOWNER_WINDOW@@@Z
; public: __cdecl ITER_DL_SPIN_ITEM::ITER_DL_SPIN_ITEM(class DLIST & __ptr64) __ptr64
??0ITER_DL_SPIN_ITEM@@QEAA@AEAVDLIST@@@Z
; public: __cdecl ITER_SL_ASSOCHCFILE::ITER_SL_ASSOCHCFILE(class SLIST & __ptr64) __ptr64
??0ITER_SL_ASSOCHCFILE@@QEAA@AEAVSLIST@@@Z
; public: __cdecl ITER_SL_CLIENTDATA::ITER_SL_CLIENTDATA(class SLIST & __ptr64) __ptr64
??0ITER_SL_CLIENTDATA@@QEAA@AEAVSLIST@@@Z
; public: __cdecl ITER_SL_STRING_BITSET_PAIR::ITER_SL_STRING_BITSET_PAIR(class SLIST & __ptr64) __ptr64
??0ITER_SL_STRING_BITSET_PAIR@@QEAA@AEAVSLIST@@@Z
; public: __cdecl ITER_SL_TIMER_BASE::ITER_SL_TIMER_BASE(class SLIST & __ptr64) __ptr64
??0ITER_SL_TIMER_BASE@@QEAA@AEAVSLIST@@@Z
; public: __cdecl ITER_SL_UI_EXT::ITER_SL_UI_EXT(class SLIST & __ptr64) __ptr64
??0ITER_SL_UI_EXT@@QEAA@AEAVSLIST@@@Z
; public: __cdecl ITER_SL_USER_BROWSER_LBI::ITER_SL_USER_BROWSER_LBI(class SLIST & __ptr64) __ptr64
??0ITER_SL_USER_BROWSER_LBI@@QEAA@AEAVSLIST@@@Z
; public: __cdecl LAZY_LISTBOX::LAZY_LISTBOX(class OWNER_WINDOW * __ptr64,unsigned int,int,enum FontType) __ptr64
??0LAZY_LISTBOX@@QEAA@PEAVOWNER_WINDOW@@IHW4FontType@@@Z
; public: __cdecl LAZY_LISTBOX::LAZY_LISTBOX(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType) __ptr64
??0LAZY_LISTBOX@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@@Z
; public: __cdecl LBI::LBI(void) __ptr64
??0LBI@@QEAA@XZ
; public: __cdecl LBITREE::LBITREE(void) __ptr64
??0LBITREE@@QEAA@XZ
; public: __cdecl LBI_HEAP::LBI_HEAP(int,int) __ptr64
??0LBI_HEAP@@QEAA@HH@Z
; public: __cdecl LB_COLUMN_HEADER::LB_COLUMN_HEADER(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION) __ptr64
??0LB_COLUMN_HEADER@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@@Z
; public: __cdecl LB_COL_WIDTHS::LB_COL_WIDTHS(struct HWND__ * __ptr64,struct HINSTANCE__ * __ptr64,class IDRESOURCE const & __ptr64,unsigned int,unsigned int) __ptr64
??0LB_COL_WIDTHS@@QEAA@PEAUHWND__@@PEAUHINSTANCE__@@AEBVIDRESOURCE@@II@Z
; public: __cdecl LISTBOX::LISTBOX(class OWNER_WINDOW * __ptr64,unsigned int,int,enum FontType,int) __ptr64
??0LISTBOX@@QEAA@PEAVOWNER_WINDOW@@IHW4FontType@@H@Z
; public: __cdecl LISTBOX::LISTBOX(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType,int) __ptr64
??0LISTBOX@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@H@Z
; protected: __cdecl LIST_CONTROL::LIST_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,int) __ptr64
??0LIST_CONTROL@@IEAA@PEAVOWNER_WINDOW@@IH@Z
; protected: __cdecl LIST_CONTROL::LIST_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64) __ptr64
??0LIST_CONTROL@@IEAA@PEAVOWNER_WINDOW@@IHVXYPOINT@@VXYDIMENSION@@KPEBG@Z
; public: __cdecl LM_OLLB::LM_OLLB(class OWNER_WINDOW * __ptr64,unsigned int,enum SELECTION_TYPE,unsigned long) __ptr64
??0LM_OLLB@@QEAA@PEAVOWNER_WINDOW@@IW4SELECTION_TYPE@@K@Z
; public: __cdecl LM_OLLB::LM_OLLB(class OWNER_WINDOW * __ptr64,unsigned int,enum SELECTION_TYPE,unsigned short const * __ptr64,unsigned long,unsigned long) __ptr64
??0LM_OLLB@@QEAA@PEAVOWNER_WINDOW@@IW4SELECTION_TYPE@@PEBGKK@Z
; public: __cdecl LOCAL_ATOM::LOCAL_ATOM(unsigned short const * __ptr64) __ptr64
??0LOCAL_ATOM@@QEAA@PEBG@Z
; public: __cdecl LOGON_HOURS_CONTROL::LOGON_HOURS_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0LOGON_HOURS_CONTROL@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl LOGON_HOURS_CONTROL::LOGON_HOURS_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION) __ptr64
??0LOGON_HOURS_CONTROL@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@@Z
; public: __cdecl MAGIC_GROUP::MAGIC_GROUP(class OWNER_WINDOW * __ptr64,unsigned int,int,unsigned int,class CONTROL_GROUP * __ptr64) __ptr64
??0MAGIC_GROUP@@QEAA@PEAVOWNER_WINDOW@@IHIPEAVCONTROL_GROUP@@@Z
; public: __cdecl MASK_MAP::MASK_MAP(void) __ptr64
??0MASK_MAP@@QEAA@XZ
; public: __cdecl MEMORY_DC::MEMORY_DC(class DEVICE_CONTEXT & __ptr64) __ptr64
??0MEMORY_DC@@QEAA@AEAVDEVICE_CONTEXT@@@Z
; protected: __cdecl MENUITEM::MENUITEM(struct HMENU__ * __ptr64,unsigned int) __ptr64
??0MENUITEM@@IEAA@PEAUHMENU__@@I@Z
; public: __cdecl MENUITEM::MENUITEM(class APP_WINDOW * __ptr64,unsigned int) __ptr64
??0MENUITEM@@QEAA@PEAVAPP_WINDOW@@I@Z
; protected: __cdecl MENU_BASE::MENU_BASE(struct HMENU__ * __ptr64) __ptr64
??0MENU_BASE@@IEAA@PEAUHMENU__@@@Z
; public: __cdecl METER::METER(class OWNER_WINDOW * __ptr64,unsigned int,unsigned long) __ptr64
??0METER@@QEAA@PEAVOWNER_WINDOW@@IK@Z
; public: __cdecl METER::METER(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned long) __ptr64
??0METER@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KK@Z
; public: __cdecl MLE::MLE(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int) __ptr64
??0MLE@@QEAA@PEAVOWNER_WINDOW@@II@Z
; public: __cdecl MLE::MLE(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64,unsigned int) __ptr64
??0MLE@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBGI@Z
; public: __cdecl MLE_FONT::MLE_FONT(class OWNER_WINDOW * __ptr64,unsigned int,enum FontType) __ptr64
??0MLE_FONT@@QEAA@PEAVOWNER_WINDOW@@IW4FontType@@@Z
; public: __cdecl MLT::MLT(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0MLT@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl MLT::MLT(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64) __ptr64
??0MLT@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBG@Z
; public: __cdecl MLT_FONT::MLT_FONT(class OWNER_WINDOW * __ptr64,unsigned int,enum FontType) __ptr64
??0MLT_FONT@@QEAA@PEAVOWNER_WINDOW@@IW4FontType@@@Z
; public: __cdecl MOUSE_EVENT::MOUSE_EVENT(unsigned int,unsigned __int64,__int64) __ptr64
??0MOUSE_EVENT@@QEAA@I_K_J@Z
; public: __cdecl MSGPOPUP_DIALOG::MSGPOPUP_DIALOG(struct HWND__ * __ptr64,class NLS_STR const & __ptr64,long,enum MSG_SEVERITY,unsigned long,unsigned int,unsigned int,long,unsigned long) __ptr64
??0MSGPOPUP_DIALOG@@QEAA@PEAUHWND__@@AEBVNLS_STR@@JW4MSG_SEVERITY@@KIIJK@Z
; protected: __cdecl MSG_DIALOG_BASE::MSG_DIALOG_BASE(struct HWND__ * __ptr64,unsigned short const * __ptr64,unsigned int) __ptr64
??0MSG_DIALOG_BASE@@IEAA@PEAUHWND__@@PEBGI@Z
; public: __cdecl NT_FIND_ACCOUNT_DIALOG::NT_FIND_ACCOUNT_DIALOG(struct HWND__ * __ptr64,class NT_USER_BROWSER_DIALOG * __ptr64,class BROWSER_DOMAIN_CB * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
??0NT_FIND_ACCOUNT_DIALOG@@QEAA@PEAUHWND__@@PEAVNT_USER_BROWSER_DIALOG@@PEAVBROWSER_DOMAIN_CB@@PEBGK@Z
; public: __cdecl NT_GLOBALGROUP_BROWSER_DIALOG::NT_GLOBALGROUP_BROWSER_DIALOG(struct HWND__ * __ptr64,class NT_USER_BROWSER_DIALOG * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,class OS_SID const * __ptr64,class SAM_DOMAIN const * __ptr64,class LSA_POLICY * __ptr64,unsigned short const * __ptr64) __ptr64
??0NT_GLOBALGROUP_BROWSER_DIALOG@@QEAA@PEAUHWND__@@PEAVNT_USER_BROWSER_DIALOG@@PEBG2PEBVOS_SID@@PEBVSAM_DOMAIN@@PEAVLSA_POLICY@@2@Z
; public: __cdecl NT_GROUP_BROWSER_DIALOG::NT_GROUP_BROWSER_DIALOG(unsigned short const * __ptr64,struct HWND__ * __ptr64,class NT_USER_BROWSER_DIALOG * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0NT_GROUP_BROWSER_DIALOG@@QEAA@PEBGPEAUHWND__@@PEAVNT_USER_BROWSER_DIALOG@@00@Z
; public: __cdecl NT_GROUP_BROWSER_LB::NT_GROUP_BROWSER_LB(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0NT_GROUP_BROWSER_LB@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl NT_LOCALGROUP_BROWSER_DIALOG::NT_LOCALGROUP_BROWSER_DIALOG(struct HWND__ * __ptr64,class NT_USER_BROWSER_DIALOG * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,class OS_SID const * __ptr64,class SAM_DOMAIN const * __ptr64,class SAM_DOMAIN const * __ptr64,class LSA_POLICY * __ptr64,unsigned short const * __ptr64) __ptr64
??0NT_LOCALGROUP_BROWSER_DIALOG@@QEAA@PEAUHWND__@@PEAVNT_USER_BROWSER_DIALOG@@PEBG2PEBVOS_SID@@PEBVSAM_DOMAIN@@4PEAVLSA_POLICY@@2@Z
; public: __cdecl NT_USER_BROWSER_DIALOG::NT_USER_BROWSER_DIALOG(unsigned short const * __ptr64,struct HWND__ * __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long,class ADMIN_AUTHORITY const * __ptr64) __ptr64
??0NT_USER_BROWSER_DIALOG@@QEAA@PEBGPEAUHWND__@@0KK0KKKPEBVADMIN_AUTHORITY@@@Z
; public: __cdecl OLLB_ENTRY::OLLB_ENTRY(enum OUTLINE_LB_LEVEL,int,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0OLLB_ENTRY@@QEAA@W4OUTLINE_LB_LEVEL@@HPEBG11@Z
; public: __cdecl OPEN_DIALOG_BASE::OPEN_DIALOG_BASE(struct HWND__ * __ptr64,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned short const * __ptr64,unsigned short const * __ptr64,class OPEN_LBOX_BASE * __ptr64) __ptr64
??0OPEN_DIALOG_BASE@@QEAA@PEAUHWND__@@IIIIIPEBG1PEAVOPEN_LBOX_BASE@@@Z
; public: __cdecl OPEN_LBI_BASE::OPEN_LBI_BASE(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long,unsigned long) __ptr64
??0OPEN_LBI_BASE@@QEAA@PEBG0KKK@Z
; public: __cdecl OPEN_LBOX_BASE::OPEN_LBOX_BASE(class OWNER_WINDOW * __ptr64,unsigned int,class NLS_STR const & __ptr64,class NLS_STR const & __ptr64) __ptr64
??0OPEN_LBOX_BASE@@QEAA@PEAVOWNER_WINDOW@@IAEBVNLS_STR@@1@Z
; public: __cdecl ORDER_GROUP::ORDER_GROUP(class STRING_LISTBOX * __ptr64,class BUTTON_CONTROL * __ptr64,class BUTTON_CONTROL * __ptr64,class CONTROL_GROUP * __ptr64) __ptr64
??0ORDER_GROUP@@QEAA@PEAVSTRING_LISTBOX@@PEAVBUTTON_CONTROL@@1PEAVCONTROL_GROUP@@@Z
; public: __cdecl OUTLINE_LISTBOX::OUTLINE_LISTBOX(class OWNER_WINDOW * __ptr64,unsigned int,int) __ptr64
??0OUTLINE_LISTBOX@@QEAA@PEAVOWNER_WINDOW@@IH@Z
; public: __cdecl OWNER_WINDOW::OWNER_WINDOW(unsigned short const * __ptr64,unsigned long,class WINDOW const * __ptr64) __ptr64
??0OWNER_WINDOW@@QEAA@PEBGKPEBVWINDOW@@@Z
; public: __cdecl OWNER_WINDOW::OWNER_WINDOW(void) __ptr64
??0OWNER_WINDOW@@QEAA@XZ
; public: __cdecl OWNINGWND::OWNINGWND(struct HWND__ * __ptr64) __ptr64
??0OWNINGWND@@QEAA@PEAUHWND__@@@Z
; public: __cdecl OWNINGWND::OWNINGWND(class OWNER_WINDOW const * __ptr64) __ptr64
??0OWNINGWND@@QEAA@PEBVOWNER_WINDOW@@@Z
; public: __cdecl PAINT_DISPLAY_CONTEXT::PAINT_DISPLAY_CONTEXT(class WINDOW * __ptr64) __ptr64
??0PAINT_DISPLAY_CONTEXT@@QEAA@PEAVWINDOW@@@Z
; public: __cdecl PASSWORD_CONTROL::PASSWORD_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int) __ptr64
??0PASSWORD_CONTROL@@QEAA@PEAVOWNER_WINDOW@@II@Z
; public: __cdecl PASSWORD_CONTROL::PASSWORD_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64,unsigned int) __ptr64
??0PASSWORD_CONTROL@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBGI@Z
; public: __cdecl POPUP::POPUP(struct HWND__ * __ptr64,long,enum MSG_SEVERITY,unsigned int,unsigned int,int) __ptr64
??0POPUP@@QEAA@PEAUHWND__@@JW4MSG_SEVERITY@@IIH@Z
; public: __cdecl POPUP::POPUP(struct HWND__ * __ptr64,long,enum MSG_SEVERITY,unsigned long,unsigned int,class NLS_STR const * __ptr64 * __ptr64,unsigned int) __ptr64
??0POPUP@@QEAA@PEAUHWND__@@JW4MSG_SEVERITY@@KIPEAPEBVNLS_STR@@I@Z
; public: __cdecl POPUP_MENU::POPUP_MENU(class IDRESOURCE & __ptr64) __ptr64
??0POPUP_MENU@@QEAA@AEAVIDRESOURCE@@@Z
; public: __cdecl POPUP_MENU::POPUP_MENU(class PWND2HWND const & __ptr64) __ptr64
??0POPUP_MENU@@QEAA@AEBVPWND2HWND@@@Z
; public: __cdecl POPUP_MENU::POPUP_MENU(struct HMENU__ * __ptr64) __ptr64
??0POPUP_MENU@@QEAA@PEAUHMENU__@@@Z
; public: __cdecl POPUP_MENU::POPUP_MENU(void) __ptr64
??0POPUP_MENU@@QEAA@XZ
; public: __cdecl PROC_INSTANCE::PROC_INSTANCE(unsigned __int64) __ptr64
??0PROC_INSTANCE@@QEAA@_K@Z
; public: __cdecl PROC_TIMER::PROC_TIMER(struct HWND__ * __ptr64,unsigned __int64,unsigned long,int) __ptr64
??0PROC_TIMER@@QEAA@PEAUHWND__@@_KKH@Z
; public: __cdecl PROGRESS_CONTROL::PROGRESS_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int) __ptr64
??0PROGRESS_CONTROL@@QEAA@PEAVOWNER_WINDOW@@III@Z
; public: __cdecl PROMPT_AND_CONNECT::PROMPT_AND_CONNECT(struct HWND__ * __ptr64,unsigned short const * __ptr64,unsigned long,unsigned int,unsigned short const * __ptr64) __ptr64
??0PROMPT_AND_CONNECT@@QEAA@PEAUHWND__@@PEBGKI1@Z
; public: __cdecl PROMPT_FOR_ANY_DC_DLG::PROMPT_FOR_ANY_DC_DLG(class PWND2HWND & __ptr64,unsigned long,class NLS_STR const * __ptr64,class PWND2HWND * __ptr64) __ptr64
??0PROMPT_FOR_ANY_DC_DLG@@QEAA@AEAVPWND2HWND@@KPEBVNLS_STR@@PEAV2@@Z
; public: __cdecl PUSH_BUTTON::PUSH_BUTTON(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0PUSH_BUTTON@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl PUSH_BUTTON::PUSH_BUTTON(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long) __ptr64
??0PUSH_BUTTON@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@K@Z
; public: __cdecl PWND2HWND::PWND2HWND(struct HWND__ * __ptr64) __ptr64
??0PWND2HWND@@QEAA@PEAUHWND__@@@Z
; public: __cdecl RADIO_BUTTON::RADIO_BUTTON(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0RADIO_BUTTON@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl RADIO_GROUP::RADIO_GROUP(class OWNER_WINDOW * __ptr64,unsigned int,int,unsigned int,class CONTROL_GROUP * __ptr64) __ptr64
??0RADIO_GROUP@@QEAA@PEAVOWNER_WINDOW@@IHIPEAVCONTROL_GROUP@@@Z
; public: __cdecl RESOURCE_PASSWORD_DIALOG::RESOURCE_PASSWORD_DIALOG(struct HWND__ * __ptr64,unsigned short const * __ptr64,unsigned int,unsigned long) __ptr64
??0RESOURCE_PASSWORD_DIALOG@@QEAA@PEAUHWND__@@PEBGIK@Z
; public: __cdecl RESOURCE_STR::RESOURCE_STR(long) __ptr64
??0RESOURCE_STR@@QEAA@J@Z
; public: __cdecl RITER_DL_SPIN_ITEM::RITER_DL_SPIN_ITEM(class DLIST & __ptr64) __ptr64
??0RITER_DL_SPIN_ITEM@@QEAA@AEAVDLIST@@@Z
; public: __cdecl SCREEN_DC::SCREEN_DC(void) __ptr64
??0SCREEN_DC@@QEAA@XZ
; public: __cdecl SCROLLBAR::SCROLLBAR(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long) __ptr64
??0SCROLLBAR@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@K@Z
; public: __cdecl SCROLL_EVENT::SCROLL_EVENT(unsigned int,unsigned __int64,__int64) __ptr64
??0SCROLL_EVENT@@QEAA@I_K_J@Z
; public: __cdecl SET_CONTROL::SET_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,struct HICON__ * __ptr64,struct HICON__ * __ptr64,class LISTBOX * __ptr64,class LISTBOX * __ptr64,unsigned int) __ptr64
??0SET_CONTROL@@QEAA@PEAVOWNER_WINDOW@@IIPEAUHICON__@@1PEAVLISTBOX@@2I@Z
; public: __cdecl SET_OF_AUDIT_CATEGORIES::SET_OF_AUDIT_CATEGORIES(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int,class MASK_MAP * __ptr64,class BITFIELD * __ptr64,class BITFIELD * __ptr64,int) __ptr64
??0SET_OF_AUDIT_CATEGORIES@@QEAA@PEAVOWNER_WINDOW@@IIIPEAVMASK_MAP@@PEAVBITFIELD@@2H@Z
; public: __cdecl SLE::SLE(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int) __ptr64
??0SLE@@QEAA@PEAVOWNER_WINDOW@@II@Z
; public: __cdecl SLE::SLE(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64,unsigned int) __ptr64
??0SLE@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBGI@Z
; public: __cdecl SLE_FONT::SLE_FONT(class OWNER_WINDOW * __ptr64,unsigned int,enum FontType) __ptr64
??0SLE_FONT@@QEAA@PEAVOWNER_WINDOW@@IW4FontType@@@Z
; public: __cdecl SLE_STRIP::SLE_STRIP(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,int) __ptr64
??0SLE_STRIP@@QEAA@PEAVOWNER_WINDOW@@IIH@Z
; public: __cdecl SLE_STRIP::SLE_STRIP(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64,unsigned int,int) __ptr64
??0SLE_STRIP@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBGIH@Z
; public: __cdecl SLE_STRLB_GROUP::SLE_STRLB_GROUP(class OWNER_WINDOW * __ptr64,class SLE * __ptr64,class STRING_LISTBOX * __ptr64,class PUSH_BUTTON * __ptr64,class PUSH_BUTTON * __ptr64) __ptr64
??0SLE_STRLB_GROUP@@QEAA@PEAVOWNER_WINDOW@@PEAVSLE@@PEAVSTRING_LISTBOX@@PEAVPUSH_BUTTON@@3@Z
; public: __cdecl SLIST_OF_ASSOCHCFILE::SLIST_OF_ASSOCHCFILE(int) __ptr64
??0SLIST_OF_ASSOCHCFILE@@QEAA@H@Z
; public: __cdecl SLIST_OF_CLIENTDATA::SLIST_OF_CLIENTDATA(int) __ptr64
??0SLIST_OF_CLIENTDATA@@QEAA@H@Z
; public: __cdecl SLIST_OF_OS_SID::SLIST_OF_OS_SID(int) __ptr64
??0SLIST_OF_OS_SID@@QEAA@H@Z
; public: __cdecl SLIST_OF_STRING_BITSET_PAIR::SLIST_OF_STRING_BITSET_PAIR(int) __ptr64
??0SLIST_OF_STRING_BITSET_PAIR@@QEAA@H@Z
; public: __cdecl SLIST_OF_TIMER_BASE::SLIST_OF_TIMER_BASE(int) __ptr64
??0SLIST_OF_TIMER_BASE@@QEAA@H@Z
; public: __cdecl SLIST_OF_UI_EXT::SLIST_OF_UI_EXT(int) __ptr64
??0SLIST_OF_UI_EXT@@QEAA@H@Z
; public: __cdecl SLIST_OF_ULC_API_BUFFER::SLIST_OF_ULC_API_BUFFER(int) __ptr64
??0SLIST_OF_ULC_API_BUFFER@@QEAA@H@Z
; public: __cdecl SLIST_OF_USER_BROWSER_LBI::SLIST_OF_USER_BROWSER_LBI(int) __ptr64
??0SLIST_OF_USER_BROWSER_LBI@@QEAA@H@Z
; public: __cdecl SLT::SLT(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0SLT@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl SLT::SLT(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64) __ptr64
??0SLT@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBG@Z
; public: __cdecl SLT_ELLIPSIS::SLT_ELLIPSIS(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64,enum ELLIPSIS_STYLE) __ptr64
??0SLT_ELLIPSIS@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBGW4ELLIPSIS_STYLE@@@Z
; public: __cdecl SLT_ELLIPSIS::SLT_ELLIPSIS(class OWNER_WINDOW * __ptr64,unsigned int,enum ELLIPSIS_STYLE) __ptr64
??0SLT_ELLIPSIS@@QEAA@PEAVOWNER_WINDOW@@IW4ELLIPSIS_STYLE@@@Z
; public: __cdecl SLT_FONT::SLT_FONT(class OWNER_WINDOW * __ptr64,unsigned int,enum FontType) __ptr64
??0SLT_FONT@@QEAA@PEAVOWNER_WINDOW@@IW4FontType@@@Z
; public: __cdecl SOLID_BRUSH::SOLID_BRUSH(int) __ptr64
??0SOLID_BRUSH@@QEAA@H@Z
; public: __cdecl SPIN_GROUP::SPIN_GROUP(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int,int) __ptr64
??0SPIN_GROUP@@QEAA@PEAVOWNER_WINDOW@@IIIH@Z
; public: __cdecl SPIN_GROUP::SPIN_GROUP(class OWNER_WINDOW * __ptr64,unsigned int,unsigned int,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int) __ptr64
??0SPIN_GROUP@@QEAA@PEAVOWNER_WINDOW@@IIIVXYPOINT@@VXYDIMENSION@@KH@Z
; public: __cdecl SPIN_ITEM::SPIN_ITEM(class CONTROL_WINDOW * __ptr64) __ptr64
??0SPIN_ITEM@@QEAA@PEAVCONTROL_WINDOW@@@Z
; public: __cdecl SPIN_SLE_NUM::SPIN_SLE_NUM(class OWNER_WINDOW * __ptr64,unsigned int,unsigned long,unsigned long,unsigned long,int,unsigned int) __ptr64
??0SPIN_SLE_NUM@@QEAA@PEAVOWNER_WINDOW@@IKKKHI@Z
; public: __cdecl SPIN_SLE_NUM::SPIN_SLE_NUM(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned long,unsigned long,unsigned long,int,unsigned int) __ptr64
??0SPIN_SLE_NUM@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KKKKHI@Z
; public: __cdecl SPIN_SLE_NUM_VALID::SPIN_SLE_NUM_VALID(class OWNER_WINDOW * __ptr64,unsigned int,unsigned long,unsigned long,unsigned long,int) __ptr64
??0SPIN_SLE_NUM_VALID@@QEAA@PEAVOWNER_WINDOW@@IKKKH@Z
; public: __cdecl SPIN_SLE_NUM_VALID::SPIN_SLE_NUM_VALID(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned long,unsigned long,unsigned long,int) __ptr64
??0SPIN_SLE_NUM_VALID@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KKKKH@Z
; public: __cdecl SPIN_SLE_STR::SPIN_SLE_STR(class OWNER_WINDOW * __ptr64,unsigned int,long,long,int,unsigned int) __ptr64
??0SPIN_SLE_STR@@QEAA@PEAVOWNER_WINDOW@@IJJHI@Z
; public: __cdecl SPIN_SLE_STR::SPIN_SLE_STR(class OWNER_WINDOW * __ptr64,unsigned int,long,long,class XYPOINT,class XYDIMENSION,unsigned long,int,unsigned int) __ptr64
??0SPIN_SLE_STR@@QEAA@PEAVOWNER_WINDOW@@IJJVXYPOINT@@VXYDIMENSION@@KHI@Z
; public: __cdecl SPIN_SLE_STR::SPIN_SLE_STR(class OWNER_WINDOW * __ptr64,unsigned int,unsigned short const * __ptr64 * __ptr64 const,long,int,unsigned int) __ptr64
??0SPIN_SLE_STR@@QEAA@PEAVOWNER_WINDOW@@IQEAPEBGJHI@Z
; public: __cdecl SPIN_SLE_STR::SPIN_SLE_STR(class OWNER_WINDOW * __ptr64,unsigned int,unsigned short const * __ptr64 * __ptr64 const,long,class XYPOINT,class XYDIMENSION,unsigned long,int,unsigned int) __ptr64
??0SPIN_SLE_STR@@QEAA@PEAVOWNER_WINDOW@@IQEAPEBGJVXYPOINT@@VXYDIMENSION@@KHI@Z
; public: __cdecl SPIN_SLE_VALID_SECOND::SPIN_SLE_VALID_SECOND(class OWNER_WINDOW * __ptr64,unsigned int,long,long,long,long,int) __ptr64
??0SPIN_SLE_VALID_SECOND@@QEAA@PEAVOWNER_WINDOW@@IJJJJH@Z
; public: __cdecl SPIN_SLT_SEPARATOR::SPIN_SLT_SEPARATOR(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0SPIN_SLT_SEPARATOR@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl SPIN_SLT_SEPARATOR::SPIN_SLT_SEPARATOR(class OWNER_WINDOW * __ptr64,unsigned int,unsigned short const * __ptr64,class XYPOINT,class XYDIMENSION,unsigned long) __ptr64
??0SPIN_SLT_SEPARATOR@@QEAA@PEAVOWNER_WINDOW@@IPEBGVXYPOINT@@VXYDIMENSION@@K@Z
; public: __cdecl STANDALONE_SET_FOCUS_DLG::STANDALONE_SET_FOCUS_DLG(struct HWND__ * __ptr64,class NLS_STR * __ptr64,unsigned long,enum SELECTION_TYPE,unsigned long,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
??0STANDALONE_SET_FOCUS_DLG@@QEAA@PEAUHWND__@@PEAVNLS_STR@@KW4SELECTION_TYPE@@KPEBG3K@Z
; protected: __cdecl STATE2_BUTTON_CONTROL::STATE2_BUTTON_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0STATE2_BUTTON_CONTROL@@IEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl STATELB::STATELB(int * __ptr64 const,class OWNER_WINDOW * __ptr64,unsigned int,int,int,enum FontType) __ptr64
??0STATELB@@QEAA@QEAHPEAVOWNER_WINDOW@@IHHW4FontType@@@Z
; public: __cdecl STATELBGRP::STATELBGRP(class STATELB * __ptr64) __ptr64
??0STATELBGRP@@QEAA@PEAVSTATELB@@@Z
; public: __cdecl STATELBGRP::STATELBGRP(int * __ptr64 const,class OWNER_WINDOW * __ptr64,unsigned int,int,int,enum FontType) __ptr64
??0STATELBGRP@@QEAA@QEAHPEAVOWNER_WINDOW@@IHHW4FontType@@@Z
; protected: __cdecl STATE_BUTTON_CONTROL::STATE_BUTTON_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0STATE_BUTTON_CONTROL@@IEAA@PEAVOWNER_WINDOW@@I@Z
; protected: __cdecl STATE_BUTTON_CONTROL::STATE_BUTTON_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long) __ptr64
??0STATE_BUTTON_CONTROL@@IEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@K@Z
; public: __cdecl STATIC_SPIN_ITEM::STATIC_SPIN_ITEM(class CONTROL_WINDOW * __ptr64) __ptr64
??0STATIC_SPIN_ITEM@@QEAA@PEAVCONTROL_WINDOW@@@Z
; public: __cdecl STATIC_TEXT_CONTROL::STATIC_TEXT_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0STATIC_TEXT_CONTROL@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl STATIC_TEXT_CONTROL::STATIC_TEXT_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64) __ptr64
??0STATIC_TEXT_CONTROL@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBG@Z
; public: __cdecl STLBITEM::STLBITEM(class STATELBGRP * __ptr64) __ptr64
??0STLBITEM@@QEAA@PEAVSTATELBGRP@@@Z
; public: __cdecl STRING_BITSET_PAIR::STRING_BITSET_PAIR(class NLS_STR const & __ptr64,class BITFIELD const & __ptr64,int) __ptr64
??0STRING_BITSET_PAIR@@QEAA@AEBVNLS_STR@@AEBVBITFIELD@@H@Z
; public: __cdecl STRING_LISTBOX::STRING_LISTBOX(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64,enum FontType) __ptr64
??0STRING_LISTBOX@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBGW4FontType@@@Z
; public: __cdecl STRING_LISTBOX::STRING_LISTBOX(class OWNER_WINDOW * __ptr64,unsigned int,enum FontType) __ptr64
??0STRING_LISTBOX@@QEAA@PEAVOWNER_WINDOW@@IW4FontType@@@Z
; protected: __cdecl STRING_LIST_CONTROL::STRING_LIST_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,int) __ptr64
??0STRING_LIST_CONTROL@@IEAA@PEAVOWNER_WINDOW@@IH@Z
; protected: __cdecl STRING_LIST_CONTROL::STRING_LIST_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64) __ptr64
??0STRING_LIST_CONTROL@@IEAA@PEAVOWNER_WINDOW@@IHVXYPOINT@@VXYDIMENSION@@KPEBG@Z
; public: __cdecl STR_DTE::STR_DTE(unsigned short const * __ptr64) __ptr64
??0STR_DTE@@QEAA@PEBG@Z
; public: __cdecl STR_DTE_ELLIPSIS::STR_DTE_ELLIPSIS(unsigned short const * __ptr64,class LISTBOX * __ptr64,enum ELLIPSIS_STYLE) __ptr64
??0STR_DTE_ELLIPSIS@@QEAA@PEBGPEAVLISTBOX@@W4ELLIPSIS_STYLE@@@Z
; public: __cdecl SUBJECT_BITMAP_BLOCK::SUBJECT_BITMAP_BLOCK(void) __ptr64
??0SUBJECT_BITMAP_BLOCK@@QEAA@XZ
; public: __cdecl SYSMENUITEM::SYSMENUITEM(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0SYSMENUITEM@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl SYSTEM_MENU::SYSTEM_MENU(class PWND2HWND const & __ptr64) __ptr64
??0SYSTEM_MENU@@QEAA@AEBVPWND2HWND@@@Z
; public: __cdecl TEXT_CONTROL::TEXT_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0TEXT_CONTROL@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl TEXT_CONTROL::TEXT_CONTROL(class OWNER_WINDOW * __ptr64,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const * __ptr64) __ptr64
??0TEXT_CONTROL@@QEAA@PEAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPEBG@Z
; public: __cdecl TIMER::TIMER(class TIMER_CALLOUT * __ptr64,unsigned long,int) __ptr64
??0TIMER@@QEAA@PEAVTIMER_CALLOUT@@KH@Z
; public: __cdecl TIMER_BASE::TIMER_BASE(unsigned long,int) __ptr64
??0TIMER_BASE@@QEAA@KH@Z
; public: __cdecl TIMER_EVENT::TIMER_EVENT(unsigned int,unsigned __int64,__int64) __ptr64
??0TIMER_EVENT@@QEAA@I_K_J@Z
; public: __cdecl TIMER_WINDOW::TIMER_WINDOW(class BLT_MASTER_TIMER * __ptr64) __ptr64
??0TIMER_WINDOW@@QEAA@PEAVBLT_MASTER_TIMER@@@Z
; public: __cdecl UI_DOMAIN::UI_DOMAIN(class PWND2HWND & __ptr64,unsigned long,unsigned short const * __ptr64,int) __ptr64
??0UI_DOMAIN@@QEAA@AEAVPWND2HWND@@KPEBGH@Z
; protected: __cdecl UI_EXT::UI_EXT(unsigned short const * __ptr64,unsigned long) __ptr64
??0UI_EXT@@IEAA@PEBGK@Z
; public: __cdecl UI_EXT_MGR::UI_EXT_MGR(class UI_EXT_MGR_IF * __ptr64,unsigned long,unsigned long) __ptr64
??0UI_EXT_MGR@@QEAA@PEAVUI_EXT_MGR_IF@@KK@Z
; protected: __cdecl UI_EXT_MGR_IF::UI_EXT_MGR_IF(void) __ptr64
??0UI_EXT_MGR_IF@@IEAA@XZ
; protected: __cdecl UI_MENU_EXT::UI_MENU_EXT(unsigned short const * __ptr64,unsigned long) __ptr64
??0UI_MENU_EXT@@IEAA@PEBGK@Z
; public: __cdecl UI_MENU_EXT_MGR::UI_MENU_EXT_MGR(class UI_EXT_MGR_IF * __ptr64,unsigned long,unsigned long) __ptr64
??0UI_MENU_EXT_MGR@@QEAA@PEAVUI_EXT_MGR_IF@@KK@Z
; public: __cdecl ULC_API_BUFFER::ULC_API_BUFFER(struct _DOMAIN_DISPLAY_USER * __ptr64,unsigned long) __ptr64
??0ULC_API_BUFFER@@QEAA@PEAU_DOMAIN_DISPLAY_USER@@K@Z
; public: __cdecl USER_BROWSER_LB::USER_BROWSER_LB(class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
??0USER_BROWSER_LB@@QEAA@PEAVOWNER_WINDOW@@I@Z
; public: __cdecl USER_BROWSER_LBI::USER_BROWSER_LBI(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,void * __ptr64 const,enum UI_SystemSid,enum _SID_NAME_USE,unsigned long) __ptr64
??0USER_BROWSER_LBI@@QEAA@PEBG0000QEAXW4UI_SystemSid@@W4_SID_NAME_USE@@K@Z
; public: __cdecl USER_BROWSER_LBI_CACHE::USER_BROWSER_LBI_CACHE(void) __ptr64
??0USER_BROWSER_LBI_CACHE@@QEAA@XZ
; public: __cdecl USER_LBI_CACHE::USER_LBI_CACHE(int) __ptr64
??0USER_LBI_CACHE@@QEAA@H@Z
; public: __cdecl USRLB_NT_GROUP_ENUM::USRLB_NT_GROUP_ENUM(class SAM_DOMAIN const * __ptr64) __ptr64
??0USRLB_NT_GROUP_ENUM@@QEAA@PEBVSAM_DOMAIN@@@Z
; public: __cdecl WIN32_EVENT::WIN32_EVENT(unsigned short const * __ptr64,int,int) __ptr64
??0WIN32_EVENT@@QEAA@PEBGHH@Z
; public: __cdecl WIN32_HANDLE::WIN32_HANDLE(void * __ptr64) __ptr64
??0WIN32_HANDLE@@QEAA@PEAX@Z
; public: __cdecl WIN32_MUTEX::WIN32_MUTEX(unsigned short const * __ptr64,int) __ptr64
??0WIN32_MUTEX@@QEAA@PEBGH@Z
; public: __cdecl WIN32_SEMAPHORE::WIN32_SEMAPHORE(unsigned short const * __ptr64,long,long) __ptr64
??0WIN32_SEMAPHORE@@QEAA@PEBGJJ@Z
; protected: __cdecl WIN32_SYNC_BASE::WIN32_SYNC_BASE(void * __ptr64) __ptr64
??0WIN32_SYNC_BASE@@IEAA@PEAX@Z
; public: __cdecl WIN32_THREAD::WIN32_THREAD(int,unsigned int,unsigned short const * __ptr64) __ptr64
??0WIN32_THREAD@@QEAA@HIPEBG@Z
; public: __cdecl WINDOW::WINDOW(class WINDOW const & __ptr64) __ptr64
??0WINDOW@@QEAA@AEBV0@@Z
; public: __cdecl WINDOW::WINDOW(struct HWND__ * __ptr64) __ptr64
??0WINDOW@@QEAA@PEAUHWND__@@@Z
; public: __cdecl WINDOW::WINDOW(unsigned short const * __ptr64,unsigned long,class WINDOW const * __ptr64,unsigned int) __ptr64
??0WINDOW@@QEAA@PEBGKPEBV0@I@Z
; public: __cdecl WINDOW::WINDOW(void) __ptr64
??0WINDOW@@QEAA@XZ
; public: __cdecl WINDOW_TIMER::WINDOW_TIMER(struct HWND__ * __ptr64,unsigned long,int,int) __ptr64
??0WINDOW_TIMER@@QEAA@PEAUHWND__@@KHH@Z
; public: __cdecl WIN_ELLIPSIS::WIN_ELLIPSIS(class WINDOW * __ptr64,struct HDC__ * __ptr64,struct tagRECT const * __ptr64,enum ELLIPSIS_STYLE) __ptr64
??0WIN_ELLIPSIS@@QEAA@PEAVWINDOW@@PEAUHDC__@@PEBUtagRECT@@W4ELLIPSIS_STYLE@@@Z
; public: __cdecl WIN_ELLIPSIS::WIN_ELLIPSIS(class WINDOW * __ptr64,enum ELLIPSIS_STYLE) __ptr64
??0WIN_ELLIPSIS@@QEAA@PEAVWINDOW@@W4ELLIPSIS_STYLE@@@Z
; public: __cdecl XYDIMENSION::XYDIMENSION(struct tagSIZE const & __ptr64) __ptr64
??0XYDIMENSION@@QEAA@AEBUtagSIZE@@@Z
; public: __cdecl XYDIMENSION::XYDIMENSION(unsigned int,unsigned int) __ptr64
??0XYDIMENSION@@QEAA@II@Z
; public: __cdecl XYPOINT::XYPOINT(struct tagPOINT const & __ptr64) __ptr64
??0XYPOINT@@QEAA@AEBUtagPOINT@@@Z
; public: __cdecl XYPOINT::XYPOINT(int,int) __ptr64
??0XYPOINT@@QEAA@HH@Z
; public: __cdecl XYPOINT::XYPOINT(__int64) __ptr64
??0XYPOINT@@QEAA@_J@Z
; public: __cdecl XYRECT::XYRECT(struct tagRECT const & __ptr64) __ptr64
??0XYRECT@@QEAA@AEBUtagRECT@@@Z
; public: __cdecl XYRECT::XYRECT(class XYRECT const & __ptr64) __ptr64
??0XYRECT@@QEAA@AEBV0@@Z
; public: __cdecl XYRECT::XYRECT(int,int,int,int) __ptr64
??0XYRECT@@QEAA@HHHH@Z
; public: __cdecl XYRECT::XYRECT(struct HWND__ * __ptr64,int) __ptr64
??0XYRECT@@QEAA@PEAUHWND__@@H@Z
; public: __cdecl XYRECT::XYRECT(class WINDOW const * __ptr64,int) __ptr64
??0XYRECT@@QEAA@PEBVWINDOW@@H@Z
; public: __cdecl XYRECT::XYRECT(class XYPOINT,class XYPOINT) __ptr64
??0XYRECT@@QEAA@VXYPOINT@@0@Z
; public: __cdecl XYRECT::XYRECT(class XYPOINT,class XYDIMENSION) __ptr64
??0XYRECT@@QEAA@VXYPOINT@@VXYDIMENSION@@@Z
; public: __cdecl XYRECT::XYRECT(void) __ptr64
??0XYRECT@@QEAA@XZ
; public: __cdecl ACCELTABLE::~ACCELTABLE(void) __ptr64
??1ACCELTABLE@@QEAA@XZ
; public: __cdecl ACCOUNT_NAMES_MLE::~ACCOUNT_NAMES_MLE(void) __ptr64
??1ACCOUNT_NAMES_MLE@@QEAA@XZ
; public: __cdecl ALIAS_STR::~ALIAS_STR(void) __ptr64
??1ALIAS_STR@@QEAA@XZ
; public: __cdecl ALLOC_STR::~ALLOC_STR(void) __ptr64
??1ALLOC_STR@@QEAA@XZ
; protected: __cdecl APPLICATION::~APPLICATION(void) __ptr64
??1APPLICATION@@IEAA@XZ
; protected: __cdecl APP_WINDOW::~APP_WINDOW(void) __ptr64
??1APP_WINDOW@@IEAA@XZ
; public: __cdecl ARRAY_CONTROLVAL_CID_PAIR::~ARRAY_CONTROLVAL_CID_PAIR(void) __ptr64
??1ARRAY_CONTROLVAL_CID_PAIR@@QEAA@XZ
; public: __cdecl ARRAY_LIST_CONTROLVAL_CID_PAIR::~ARRAY_LIST_CONTROLVAL_CID_PAIR(void) __ptr64
??1ARRAY_LIST_CONTROLVAL_CID_PAIR@@QEAA@XZ
; public: __cdecl ARROW_BUTTON::~ARROW_BUTTON(void) __ptr64
??1ARROW_BUTTON@@QEAA@XZ
; public: __cdecl ASSOCHCFILE::~ASSOCHCFILE(void) __ptr64
??1ASSOCHCFILE@@QEAA@XZ
; public: __cdecl ASSOCHWNDDISP::~ASSOCHWNDDISP(void) __ptr64
??1ASSOCHWNDDISP@@QEAA@XZ
; public: __cdecl ASSOCHWNDPDLG::~ASSOCHWNDPDLG(void) __ptr64
??1ASSOCHWNDPDLG@@QEAA@XZ
; public: __cdecl ASSOCHWNDPWND::~ASSOCHWNDPWND(void) __ptr64
??1ASSOCHWNDPWND@@QEAA@XZ
; public: __cdecl ASSOCHWNDTHIS::~ASSOCHWNDTHIS(void) __ptr64
??1ASSOCHWNDTHIS@@QEAA@XZ
; protected: __cdecl ATOM_BASE::~ATOM_BASE(void) __ptr64
??1ATOM_BASE@@IEAA@XZ
; public: __cdecl AUDIT_CHECKBOXES::~AUDIT_CHECKBOXES(void) __ptr64
??1AUDIT_CHECKBOXES@@QEAA@XZ
; public: __cdecl AUTO_CURSOR::~AUTO_CURSOR(void) __ptr64
??1AUTO_CURSOR@@QEAA@XZ
; public: __cdecl BASE_ELLIPSIS::~BASE_ELLIPSIS(void) __ptr64
??1BASE_ELLIPSIS@@QEAA@XZ
; public: __cdecl BASE_PASSWORD_DIALOG::~BASE_PASSWORD_DIALOG(void) __ptr64
??1BASE_PASSWORD_DIALOG@@QEAA@XZ
; public: __cdecl BASE_SET_FOCUS_DLG::~BASE_SET_FOCUS_DLG(void) __ptr64
??1BASE_SET_FOCUS_DLG@@QEAA@XZ
; public: __cdecl BIT_MAP::~BIT_MAP(void) __ptr64
??1BIT_MAP@@QEAA@XZ
; public: __cdecl BLT_BACKGROUND_EDIT::~BLT_BACKGROUND_EDIT(void) __ptr64
??1BLT_BACKGROUND_EDIT@@QEAA@XZ
; public: __cdecl BLT_COMBOBOX::~BLT_COMBOBOX(void) __ptr64
??1BLT_COMBOBOX@@QEAA@XZ
; public: __cdecl BLT_DATE_SPIN_GROUP::~BLT_DATE_SPIN_GROUP(void) __ptr64
??1BLT_DATE_SPIN_GROUP@@QEAA@XZ
; public: __cdecl BLT_LISTBOX::~BLT_LISTBOX(void) __ptr64
??1BLT_LISTBOX@@QEAA@XZ
; public: __cdecl BLT_MASTER_TIMER::~BLT_MASTER_TIMER(void) __ptr64
??1BLT_MASTER_TIMER@@QEAA@XZ
; public: __cdecl BLT_SCRATCH::~BLT_SCRATCH(void) __ptr64
??1BLT_SCRATCH@@QEAA@XZ
; public: __cdecl BLT_TIME_SPIN_GROUP::~BLT_TIME_SPIN_GROUP(void) __ptr64
??1BLT_TIME_SPIN_GROUP@@QEAA@XZ
; public: __cdecl BROWSER_DOMAIN::~BROWSER_DOMAIN(void) __ptr64
??1BROWSER_DOMAIN@@QEAA@XZ
; public: __cdecl BROWSER_DOMAIN_CB::~BROWSER_DOMAIN_CB(void) __ptr64
??1BROWSER_DOMAIN_CB@@QEAA@XZ
; public: __cdecl BROWSER_DOMAIN_LB::~BROWSER_DOMAIN_LB(void) __ptr64
??1BROWSER_DOMAIN_LB@@QEAA@XZ
; public: virtual __cdecl BROWSER_DOMAIN_LBI::~BROWSER_DOMAIN_LBI(void) __ptr64
??1BROWSER_DOMAIN_LBI@@UEAA@XZ
; public: virtual __cdecl BROWSER_DOMAIN_LBI_PB::~BROWSER_DOMAIN_LBI_PB(void) __ptr64
??1BROWSER_DOMAIN_LBI_PB@@UEAA@XZ
; public: __cdecl BROWSER_SUBJECT::~BROWSER_SUBJECT(void) __ptr64
??1BROWSER_SUBJECT@@QEAA@XZ
; public: __cdecl BROWSER_SUBJECT_ITER::~BROWSER_SUBJECT_ITER(void) __ptr64
??1BROWSER_SUBJECT_ITER@@QEAA@XZ
; public: __cdecl BUTTON_CONTROL::~BUTTON_CONTROL(void) __ptr64
??1BUTTON_CONTROL@@QEAA@XZ
; public: __cdecl CANCEL_TASK_DIALOG::~CANCEL_TASK_DIALOG(void) __ptr64
??1CANCEL_TASK_DIALOG@@QEAA@XZ
; public: __cdecl CHANGEABLE_SPIN_ITEM::~CHANGEABLE_SPIN_ITEM(void) __ptr64
??1CHANGEABLE_SPIN_ITEM@@QEAA@XZ
; public: __cdecl CHECKBOX::~CHECKBOX(void) __ptr64
??1CHECKBOX@@QEAA@XZ
; public: __cdecl CLIENT_WINDOW::~CLIENT_WINDOW(void) __ptr64
??1CLIENT_WINDOW@@QEAA@XZ
; public: __cdecl COMBOBOX::~COMBOBOX(void) __ptr64
??1COMBOBOX@@QEAA@XZ
; public: __cdecl CONTROL_TABLE::~CONTROL_TABLE(void) __ptr64
??1CONTROL_TABLE@@QEAA@XZ
; public: __cdecl CONTROL_WINDOW::~CONTROL_WINDOW(void) __ptr64
??1CONTROL_WINDOW@@QEAA@XZ
; public: __cdecl CUSTOM_CONTROL::~CUSTOM_CONTROL(void) __ptr64
??1CUSTOM_CONTROL@@QEAA@XZ
; public: __cdecl DEC_SLT::~DEC_SLT(void) __ptr64
??1DEC_SLT@@QEAA@XZ
; public: __cdecl DEC_STR::~DEC_STR(void) __ptr64
??1DEC_STR@@QEAA@XZ
; public: __cdecl DIALOG_WINDOW::~DIALOG_WINDOW(void) __ptr64
??1DIALOG_WINDOW@@QEAA@XZ
; protected: __cdecl DISPATCHER::~DISPATCHER(void) __ptr64
??1DISPATCHER@@IEAA@XZ
; public: __cdecl DISPLAY_CONTEXT::~DISPLAY_CONTEXT(void) __ptr64
??1DISPLAY_CONTEXT@@QEAA@XZ
; public: __cdecl DISPLAY_MAP::~DISPLAY_MAP(void) __ptr64
??1DISPLAY_MAP@@QEAA@XZ
; public: __cdecl DLGLOAD::~DLGLOAD(void) __ptr64
??1DLGLOAD@@QEAA@XZ
; public: __cdecl DLIST_OF_SPIN_ITEM::~DLIST_OF_SPIN_ITEM(void) __ptr64
??1DLIST_OF_SPIN_ITEM@@QEAA@XZ
; public: __cdecl DMID_DTE::~DMID_DTE(void) __ptr64
??1DMID_DTE@@QEAA@XZ
; public: virtual __cdecl DOMAIN_FILL_THREAD::~DOMAIN_FILL_THREAD(void) __ptr64
??1DOMAIN_FILL_THREAD@@UEAA@XZ
; public: __cdecl EDIT_CONTROL::~EDIT_CONTROL(void) __ptr64
??1EDIT_CONTROL@@QEAA@XZ
; protected: __cdecl ENUM_OBJ_BASE::~ENUM_OBJ_BASE(void) __ptr64
??1ENUM_OBJ_BASE@@IEAA@XZ
; public: __cdecl EXPANDABLE_DIALOG::~EXPANDABLE_DIALOG(void) __ptr64
??1EXPANDABLE_DIALOG@@QEAA@XZ
; public: __cdecl FILE3_ENUM::~FILE3_ENUM(void) __ptr64
??1FILE3_ENUM@@QEAA@XZ
; public: __cdecl FILE3_ENUM_ITER::~FILE3_ENUM_ITER(void) __ptr64
??1FILE3_ENUM_ITER@@QEAA@XZ
; public: __cdecl FILE3_ENUM_OBJ::~FILE3_ENUM_OBJ(void) __ptr64
??1FILE3_ENUM_OBJ@@QEAA@XZ
; public: virtual __cdecl FOCUSDLG_DATA_THREAD::~FOCUSDLG_DATA_THREAD(void) __ptr64
??1FOCUSDLG_DATA_THREAD@@UEAA@XZ
; public: __cdecl FOCUS_CHECKBOX::~FOCUS_CHECKBOX(void) __ptr64
??1FOCUS_CHECKBOX@@QEAA@XZ
; public: __cdecl FONT::~FONT(void) __ptr64
??1FONT@@QEAA@XZ
; protected: __cdecl GET_FNAME_BASE_DLG::~GET_FNAME_BASE_DLG(void) __ptr64
??1GET_FNAME_BASE_DLG@@IEAA@XZ
; public: __cdecl GLOBAL_ATOM::~GLOBAL_ATOM(void) __ptr64
??1GLOBAL_ATOM@@QEAA@XZ
; public: __cdecl GRAPHICAL_BUTTON::~GRAPHICAL_BUTTON(void) __ptr64
??1GRAPHICAL_BUTTON@@QEAA@XZ
; public: __cdecl GRAPHICAL_BUTTON_WITH_DISABLE::~GRAPHICAL_BUTTON_WITH_DISABLE(void) __ptr64
??1GRAPHICAL_BUTTON_WITH_DISABLE@@QEAA@XZ
; public: __cdecl HAW_FOR_HAWAII_INFO::~HAW_FOR_HAWAII_INFO(void) __ptr64
??1HAW_FOR_HAWAII_INFO@@QEAA@XZ
; public: __cdecl HEX_STR::~HEX_STR(void) __ptr64
??1HEX_STR@@QEAA@XZ
; public: virtual __cdecl HIER_LBI::~HIER_LBI(void) __ptr64
??1HIER_LBI@@UEAA@XZ
; public: __cdecl HIER_LBI_ITERATOR::~HIER_LBI_ITERATOR(void) __ptr64
??1HIER_LBI_ITERATOR@@QEAA@XZ
; public: __cdecl HIER_LISTBOX::~HIER_LISTBOX(void) __ptr64
??1HIER_LISTBOX@@QEAA@XZ
; public: __cdecl H_SPLITTER_BAR::~H_SPLITTER_BAR(void) __ptr64
??1H_SPLITTER_BAR@@QEAA@XZ
; public: __cdecl ICANON_SLE::~ICANON_SLE(void) __ptr64
??1ICANON_SLE@@QEAA@XZ
; public: __cdecl ICON_CONTROL::~ICON_CONTROL(void) __ptr64
??1ICON_CONTROL@@QEAA@XZ
; public: __cdecl ITER_DL_SPIN_ITEM::~ITER_DL_SPIN_ITEM(void) __ptr64
??1ITER_DL_SPIN_ITEM@@QEAA@XZ
; public: __cdecl ITER_SL_ASSOCHCFILE::~ITER_SL_ASSOCHCFILE(void) __ptr64
??1ITER_SL_ASSOCHCFILE@@QEAA@XZ
; public: __cdecl ITER_SL_CLIENTDATA::~ITER_SL_CLIENTDATA(void) __ptr64
??1ITER_SL_CLIENTDATA@@QEAA@XZ
; public: __cdecl ITER_SL_STRING_BITSET_PAIR::~ITER_SL_STRING_BITSET_PAIR(void) __ptr64
??1ITER_SL_STRING_BITSET_PAIR@@QEAA@XZ
; public: __cdecl ITER_SL_TIMER_BASE::~ITER_SL_TIMER_BASE(void) __ptr64
??1ITER_SL_TIMER_BASE@@QEAA@XZ
; public: __cdecl ITER_SL_UI_EXT::~ITER_SL_UI_EXT(void) __ptr64
??1ITER_SL_UI_EXT@@QEAA@XZ
; public: __cdecl ITER_SL_USER_BROWSER_LBI::~ITER_SL_USER_BROWSER_LBI(void) __ptr64
??1ITER_SL_USER_BROWSER_LBI@@QEAA@XZ
; public: __cdecl LAZY_LISTBOX::~LAZY_LISTBOX(void) __ptr64
??1LAZY_LISTBOX@@QEAA@XZ
; public: virtual __cdecl LBI::~LBI(void) __ptr64
??1LBI@@UEAA@XZ
; public: __cdecl LBITREE::~LBITREE(void) __ptr64
??1LBITREE@@QEAA@XZ
; public: __cdecl LBI_HEAP::~LBI_HEAP(void) __ptr64
??1LBI_HEAP@@QEAA@XZ
; public: __cdecl LB_COL_WIDTHS::~LB_COL_WIDTHS(void) __ptr64
??1LB_COL_WIDTHS@@QEAA@XZ
; public: __cdecl LISTBOX::~LISTBOX(void) __ptr64
??1LISTBOX@@QEAA@XZ
; protected: __cdecl LIST_CONTROL::~LIST_CONTROL(void) __ptr64
??1LIST_CONTROL@@IEAA@XZ
; public: __cdecl LM_FILE_2::~LM_FILE_2(void) __ptr64
??1LM_FILE_2@@QEAA@XZ
; public: __cdecl LM_MESSAGE::~LM_MESSAGE(void) __ptr64
??1LM_MESSAGE@@QEAA@XZ
; public: __cdecl LM_OLLB::~LM_OLLB(void) __ptr64
??1LM_OLLB@@QEAA@XZ
; public: __cdecl LOCAL_ATOM::~LOCAL_ATOM(void) __ptr64
??1LOCAL_ATOM@@QEAA@XZ
; public: __cdecl LOC_LM_OBJ::~LOC_LM_OBJ(void) __ptr64
??1LOC_LM_OBJ@@QEAA@XZ
; public: __cdecl LOGON_HOURS_CONTROL::~LOGON_HOURS_CONTROL(void) __ptr64
??1LOGON_HOURS_CONTROL@@QEAA@XZ
; public: __cdecl MAGIC_GROUP::~MAGIC_GROUP(void) __ptr64
??1MAGIC_GROUP@@QEAA@XZ
; public: __cdecl MASK_MAP::~MASK_MAP(void) __ptr64
??1MASK_MAP@@QEAA@XZ
; public: __cdecl MEMORY_DC::~MEMORY_DC(void) __ptr64
??1MEMORY_DC@@QEAA@XZ
; public: __cdecl MENU_BASE::~MENU_BASE(void) __ptr64
??1MENU_BASE@@QEAA@XZ
; public: __cdecl MLE::~MLE(void) __ptr64
??1MLE@@QEAA@XZ
; public: __cdecl MLE_FONT::~MLE_FONT(void) __ptr64
??1MLE_FONT@@QEAA@XZ
; public: __cdecl MLT::~MLT(void) __ptr64
??1MLT@@QEAA@XZ
; public: __cdecl MSGPOPUP_DIALOG::~MSGPOPUP_DIALOG(void) __ptr64
??1MSGPOPUP_DIALOG@@QEAA@XZ
; protected: __cdecl MSG_DIALOG_BASE::~MSG_DIALOG_BASE(void) __ptr64
??1MSG_DIALOG_BASE@@IEAA@XZ
; public: __cdecl NT_FIND_ACCOUNT_DIALOG::~NT_FIND_ACCOUNT_DIALOG(void) __ptr64
??1NT_FIND_ACCOUNT_DIALOG@@QEAA@XZ
; public: virtual __cdecl NT_GLOBALGROUP_BROWSER_DIALOG::~NT_GLOBALGROUP_BROWSER_DIALOG(void) __ptr64
??1NT_GLOBALGROUP_BROWSER_DIALOG@@UEAA@XZ
; public: virtual __cdecl NT_GROUP_BROWSER_DIALOG::~NT_GROUP_BROWSER_DIALOG(void) __ptr64
??1NT_GROUP_BROWSER_DIALOG@@UEAA@XZ
; public: __cdecl NT_GROUP_BROWSER_LB::~NT_GROUP_BROWSER_LB(void) __ptr64
??1NT_GROUP_BROWSER_LB@@QEAA@XZ
; public: __cdecl NT_GROUP_ENUM_ITER::~NT_GROUP_ENUM_ITER(void) __ptr64
??1NT_GROUP_ENUM_ITER@@QEAA@XZ
; public: __cdecl NT_GROUP_ENUM_OBJ::~NT_GROUP_ENUM_OBJ(void) __ptr64
??1NT_GROUP_ENUM_OBJ@@QEAA@XZ
; public: virtual __cdecl NT_LOCALGROUP_BROWSER_DIALOG::~NT_LOCALGROUP_BROWSER_DIALOG(void) __ptr64
??1NT_LOCALGROUP_BROWSER_DIALOG@@UEAA@XZ
; public: __cdecl NT_USER_BROWSER_DIALOG::~NT_USER_BROWSER_DIALOG(void) __ptr64
??1NT_USER_BROWSER_DIALOG@@QEAA@XZ
; public: virtual __cdecl OLLB_ENTRY::~OLLB_ENTRY(void) __ptr64
??1OLLB_ENTRY@@UEAA@XZ
; public: __cdecl OPEN_DIALOG_BASE::~OPEN_DIALOG_BASE(void) __ptr64
??1OPEN_DIALOG_BASE@@QEAA@XZ
; public: virtual __cdecl OPEN_LBI_BASE::~OPEN_LBI_BASE(void) __ptr64
??1OPEN_LBI_BASE@@UEAA@XZ
; public: __cdecl OPEN_LBOX_BASE::~OPEN_LBOX_BASE(void) __ptr64
??1OPEN_LBOX_BASE@@QEAA@XZ
; public: __cdecl OUTLINE_LISTBOX::~OUTLINE_LISTBOX(void) __ptr64
??1OUTLINE_LISTBOX@@QEAA@XZ
; public: __cdecl OWNER_WINDOW::~OWNER_WINDOW(void) __ptr64
??1OWNER_WINDOW@@QEAA@XZ
; public: __cdecl PAINT_DISPLAY_CONTEXT::~PAINT_DISPLAY_CONTEXT(void) __ptr64
??1PAINT_DISPLAY_CONTEXT@@QEAA@XZ
; public: __cdecl PASSWORD_CONTROL::~PASSWORD_CONTROL(void) __ptr64
??1PASSWORD_CONTROL@@QEAA@XZ
; public: __cdecl POPUP::~POPUP(void) __ptr64
??1POPUP@@QEAA@XZ
; public: __cdecl POPUP_MENU::~POPUP_MENU(void) __ptr64
??1POPUP_MENU@@QEAA@XZ
; public: __cdecl PROC_INSTANCE::~PROC_INSTANCE(void) __ptr64
??1PROC_INSTANCE@@QEAA@XZ
; public: __cdecl PROGRESS_CONTROL::~PROGRESS_CONTROL(void) __ptr64
??1PROGRESS_CONTROL@@QEAA@XZ
; public: __cdecl PROMPT_AND_CONNECT::~PROMPT_AND_CONNECT(void) __ptr64
??1PROMPT_AND_CONNECT@@QEAA@XZ
; public: __cdecl PROMPT_FOR_ANY_DC_DLG::~PROMPT_FOR_ANY_DC_DLG(void) __ptr64
??1PROMPT_FOR_ANY_DC_DLG@@QEAA@XZ
; public: __cdecl PUSH_BUTTON::~PUSH_BUTTON(void) __ptr64
??1PUSH_BUTTON@@QEAA@XZ
; public: __cdecl RADIO_BUTTON::~RADIO_BUTTON(void) __ptr64
??1RADIO_BUTTON@@QEAA@XZ
; public: __cdecl RADIO_GROUP::~RADIO_GROUP(void) __ptr64
??1RADIO_GROUP@@QEAA@XZ
; public: __cdecl RESOURCE_PASSWORD_DIALOG::~RESOURCE_PASSWORD_DIALOG(void) __ptr64
??1RESOURCE_PASSWORD_DIALOG@@QEAA@XZ
; public: __cdecl RESOURCE_STR::~RESOURCE_STR(void) __ptr64
??1RESOURCE_STR@@QEAA@XZ
; public: __cdecl RITER_DL_SPIN_ITEM::~RITER_DL_SPIN_ITEM(void) __ptr64
??1RITER_DL_SPIN_ITEM@@QEAA@XZ
; public: __cdecl SCREEN_DC::~SCREEN_DC(void) __ptr64
??1SCREEN_DC@@QEAA@XZ
; public: __cdecl SERVER1_ENUM::~SERVER1_ENUM(void) __ptr64
??1SERVER1_ENUM@@QEAA@XZ
; public: __cdecl SERVER1_ENUM_ITER::~SERVER1_ENUM_ITER(void) __ptr64
??1SERVER1_ENUM_ITER@@QEAA@XZ
; public: __cdecl SERVER1_ENUM_OBJ::~SERVER1_ENUM_OBJ(void) __ptr64
??1SERVER1_ENUM_OBJ@@QEAA@XZ
; public: __cdecl SERVER_ENUM::~SERVER_ENUM(void) __ptr64
??1SERVER_ENUM@@QEAA@XZ
; public: __cdecl SET_CONTROL::~SET_CONTROL(void) __ptr64
??1SET_CONTROL@@QEAA@XZ
; public: __cdecl SET_OF_AUDIT_CATEGORIES::~SET_OF_AUDIT_CATEGORIES(void) __ptr64
??1SET_OF_AUDIT_CATEGORIES@@QEAA@XZ
; public: __cdecl SLE::~SLE(void) __ptr64
??1SLE@@QEAA@XZ
; public: __cdecl SLE_FONT::~SLE_FONT(void) __ptr64
??1SLE_FONT@@QEAA@XZ
; public: __cdecl SLE_STRLB_GROUP::~SLE_STRLB_GROUP(void) __ptr64
??1SLE_STRLB_GROUP@@QEAA@XZ
; public: __cdecl SLIST_OF_ASSOCHCFILE::~SLIST_OF_ASSOCHCFILE(void) __ptr64
??1SLIST_OF_ASSOCHCFILE@@QEAA@XZ
; public: __cdecl SLIST_OF_CLIENTDATA::~SLIST_OF_CLIENTDATA(void) __ptr64
??1SLIST_OF_CLIENTDATA@@QEAA@XZ
; public: __cdecl SLIST_OF_OS_SID::~SLIST_OF_OS_SID(void) __ptr64
??1SLIST_OF_OS_SID@@QEAA@XZ
; public: __cdecl SLIST_OF_STRING_BITSET_PAIR::~SLIST_OF_STRING_BITSET_PAIR(void) __ptr64
??1SLIST_OF_STRING_BITSET_PAIR@@QEAA@XZ
; public: __cdecl SLIST_OF_TIMER_BASE::~SLIST_OF_TIMER_BASE(void) __ptr64
??1SLIST_OF_TIMER_BASE@@QEAA@XZ
; public: __cdecl SLIST_OF_UI_EXT::~SLIST_OF_UI_EXT(void) __ptr64
??1SLIST_OF_UI_EXT@@QEAA@XZ
; public: __cdecl SLIST_OF_ULC_API_BUFFER::~SLIST_OF_ULC_API_BUFFER(void) __ptr64
??1SLIST_OF_ULC_API_BUFFER@@QEAA@XZ
; public: __cdecl SLIST_OF_USER_BROWSER_LBI::~SLIST_OF_USER_BROWSER_LBI(void) __ptr64
??1SLIST_OF_USER_BROWSER_LBI@@QEAA@XZ
; public: __cdecl SLT::~SLT(void) __ptr64
??1SLT@@QEAA@XZ
; public: __cdecl SLT_ELLIPSIS::~SLT_ELLIPSIS(void) __ptr64
??1SLT_ELLIPSIS@@QEAA@XZ
; public: __cdecl SOLID_BRUSH::~SOLID_BRUSH(void) __ptr64
??1SOLID_BRUSH@@QEAA@XZ
; public: __cdecl SPIN_GROUP::~SPIN_GROUP(void) __ptr64
??1SPIN_GROUP@@QEAA@XZ
; public: __cdecl SPIN_ITEM::~SPIN_ITEM(void) __ptr64
??1SPIN_ITEM@@QEAA@XZ
; public: __cdecl SPIN_SLE_NUM::~SPIN_SLE_NUM(void) __ptr64
??1SPIN_SLE_NUM@@QEAA@XZ
; public: __cdecl SPIN_SLE_NUM_VALID::~SPIN_SLE_NUM_VALID(void) __ptr64
??1SPIN_SLE_NUM_VALID@@QEAA@XZ
; public: __cdecl SPIN_SLE_STR::~SPIN_SLE_STR(void) __ptr64
??1SPIN_SLE_STR@@QEAA@XZ
; public: __cdecl SPIN_SLE_VALID_SECOND::~SPIN_SLE_VALID_SECOND(void) __ptr64
??1SPIN_SLE_VALID_SECOND@@QEAA@XZ
; public: __cdecl SPIN_SLT_SEPARATOR::~SPIN_SLT_SEPARATOR(void) __ptr64
??1SPIN_SLT_SEPARATOR@@QEAA@XZ
; public: __cdecl STATE2_BUTTON_CONTROL::~STATE2_BUTTON_CONTROL(void) __ptr64
??1STATE2_BUTTON_CONTROL@@QEAA@XZ
; public: __cdecl STATELB::~STATELB(void) __ptr64
??1STATELB@@QEAA@XZ
; public: __cdecl STATELBGRP::~STATELBGRP(void) __ptr64
??1STATELBGRP@@QEAA@XZ
; public: __cdecl STATE_BUTTON_CONTROL::~STATE_BUTTON_CONTROL(void) __ptr64
??1STATE_BUTTON_CONTROL@@QEAA@XZ
; public: __cdecl STATIC_SPIN_ITEM::~STATIC_SPIN_ITEM(void) __ptr64
??1STATIC_SPIN_ITEM@@QEAA@XZ
; public: __cdecl STATIC_TEXT_CONTROL::~STATIC_TEXT_CONTROL(void) __ptr64
??1STATIC_TEXT_CONTROL@@QEAA@XZ
; public: virtual __cdecl STLBITEM::~STLBITEM(void) __ptr64
??1STLBITEM@@UEAA@XZ
; public: __cdecl STRING_BITSET_PAIR::~STRING_BITSET_PAIR(void) __ptr64
??1STRING_BITSET_PAIR@@QEAA@XZ
; public: __cdecl STRING_LIST_CONTROL::~STRING_LIST_CONTROL(void) __ptr64
??1STRING_LIST_CONTROL@@QEAA@XZ
; public: __cdecl SUBJECT_BITMAP_BLOCK::~SUBJECT_BITMAP_BLOCK(void) __ptr64
??1SUBJECT_BITMAP_BLOCK@@QEAA@XZ
; public: __cdecl SYSTEM_MENU::~SYSTEM_MENU(void) __ptr64
??1SYSTEM_MENU@@QEAA@XZ
; public: __cdecl TEXT_CONTROL::~TEXT_CONTROL(void) __ptr64
??1TEXT_CONTROL@@QEAA@XZ
; public: __cdecl TIMER_BASE::~TIMER_BASE(void) __ptr64
??1TIMER_BASE@@QEAA@XZ
; public: __cdecl TIMER_WINDOW::~TIMER_WINDOW(void) __ptr64
??1TIMER_WINDOW@@QEAA@XZ
; public: __cdecl UI_DOMAIN::~UI_DOMAIN(void) __ptr64
??1UI_DOMAIN@@QEAA@XZ
; public: virtual __cdecl UI_EXT::~UI_EXT(void) __ptr64
??1UI_EXT@@UEAA@XZ
; public: __cdecl UI_EXT_MGR::~UI_EXT_MGR(void) __ptr64
??1UI_EXT_MGR@@QEAA@XZ
; public: __cdecl UI_EXT_MGR_IF::~UI_EXT_MGR_IF(void) __ptr64
??1UI_EXT_MGR_IF@@QEAA@XZ
; public: virtual __cdecl UI_MENU_EXT::~UI_MENU_EXT(void) __ptr64
??1UI_MENU_EXT@@UEAA@XZ
; public: virtual __cdecl UI_MENU_EXT_MGR::~UI_MENU_EXT_MGR(void) __ptr64
??1UI_MENU_EXT_MGR@@UEAA@XZ
; public: __cdecl ULC_API_BUFFER::~ULC_API_BUFFER(void) __ptr64
??1ULC_API_BUFFER@@QEAA@XZ
; public: __cdecl USER_BROWSER_LB::~USER_BROWSER_LB(void) __ptr64
??1USER_BROWSER_LB@@QEAA@XZ
; public: virtual __cdecl USER_BROWSER_LBI::~USER_BROWSER_LBI(void) __ptr64
??1USER_BROWSER_LBI@@UEAA@XZ
; public: virtual __cdecl USER_BROWSER_LBI_CACHE::~USER_BROWSER_LBI_CACHE(void) __ptr64
??1USER_BROWSER_LBI_CACHE@@UEAA@XZ
; public: virtual __cdecl USER_LBI_CACHE::~USER_LBI_CACHE(void) __ptr64
??1USER_LBI_CACHE@@UEAA@XZ
; public: __cdecl USRLB_NT_GROUP_ENUM::~USRLB_NT_GROUP_ENUM(void) __ptr64
??1USRLB_NT_GROUP_ENUM@@QEAA@XZ
; public: __cdecl WIN32_EVENT::~WIN32_EVENT(void) __ptr64
??1WIN32_EVENT@@QEAA@XZ
; public: __cdecl WIN32_HANDLE::~WIN32_HANDLE(void) __ptr64
??1WIN32_HANDLE@@QEAA@XZ
; public: __cdecl WIN32_MUTEX::~WIN32_MUTEX(void) __ptr64
??1WIN32_MUTEX@@QEAA@XZ
; public: __cdecl WIN32_SEMAPHORE::~WIN32_SEMAPHORE(void) __ptr64
??1WIN32_SEMAPHORE@@QEAA@XZ
; public: __cdecl WIN32_SYNC_BASE::~WIN32_SYNC_BASE(void) __ptr64
??1WIN32_SYNC_BASE@@QEAA@XZ
; public: virtual __cdecl WIN32_THREAD::~WIN32_THREAD(void) __ptr64
??1WIN32_THREAD@@UEAA@XZ
; public: __cdecl WINDOW::~WINDOW(void) __ptr64
??1WINDOW@@QEAA@XZ
; public: __cdecl WIN_ELLIPSIS::~WIN_ELLIPSIS(void) __ptr64
??1WIN_ELLIPSIS@@QEAA@XZ
; public: class ARRAY_CONTROLVAL_CID_PAIR & __ptr64 __cdecl ARRAY_CONTROLVAL_CID_PAIR::operator=(class ARRAY_CONTROLVAL_CID_PAIR & __ptr64) __ptr64
??4ARRAY_CONTROLVAL_CID_PAIR@@QEAAAEAV0@AEAV0@@Z
; public: virtual unsigned short const * __ptr64 __cdecl GLOBAL_ATOM::operator=(unsigned short const * __ptr64) __ptr64
??4GLOBAL_ATOM@@UEAAPEBGPEBG@Z
; public: virtual unsigned short const * __ptr64 __cdecl LOCAL_ATOM::operator=(unsigned short const * __ptr64) __ptr64
??4LOCAL_ATOM@@UEAAPEBGPEBG@Z
; public: class XYRECT & __ptr64 __cdecl XYRECT::operator=(class XYRECT const & __ptr64) __ptr64
??4XYRECT@@QEAAAEAV0@AEBV0@@Z
; public: int __cdecl ASSOCHWNDDISP::operator!(void)const  __ptr64
??7ASSOCHWNDDISP@@QEBAHXZ
; public: int __cdecl ASSOCHWNDPWND::operator!(void)const  __ptr64
??7ASSOCHWNDPWND@@QEBAHXZ
; public: int __cdecl BASE::operator!(void)const  __ptr64
??7BASE@@QEBAHXZ
; public: int __cdecl CONTROL_WINDOW::operator!(void)const  __ptr64
??7CONTROL_WINDOW@@QEBAHXZ
; public: int __cdecl XYRECT::operator==(class XYRECT const & __ptr64)const  __ptr64
??8XYRECT@@QEBAHAEBV0@@Z
; public: class CONTROLVAL_CID_PAIR & __ptr64 __cdecl ARRAY_CONTROLVAL_CID_PAIR::operator[](unsigned int)const  __ptr64
??AARRAY_CONTROLVAL_CID_PAIR@@QEBAAEAVCONTROLVAL_CID_PAIR@@I@Z
; public: class DTE * __ptr64 & __ptr64 __cdecl DISPLAY_TABLE::operator[](unsigned int) __ptr64
??ADISPLAY_TABLE@@QEAAAEAPEAVDTE@@I@Z
; public: class RADIO_BUTTON * __ptr64 __cdecl RADIO_GROUP::operator[](unsigned int) __ptr64
??ARADIO_GROUP@@QEAAPEAVRADIO_BUTTON@@I@Z
; public: __cdecl NLS_STR::operator unsigned short const * __ptr64(void)const  __ptr64
??BNLS_STR@@QEBAPEBGXZ
; public: __cdecl OS_SID::operator void * __ptr64(void)const  __ptr64
??BOS_SID@@QEBAPEAXXZ
; public: __cdecl XYRECT::operator struct tagRECT const * __ptr64(void)const  __ptr64
??BXYRECT@@QEBAPEBUtagRECT@@XZ
; public: class FILE3_ENUM_OBJ const * __ptr64 __cdecl FILE3_ENUM_ITER::operator()(long * __ptr64,int) __ptr64
??RFILE3_ENUM_ITER@@QEAAPEBVFILE3_ENUM_OBJ@@PEAJH@Z
; public: class HIER_LBI * __ptr64 __cdecl HIER_LBI_ITERATOR::operator()(void) __ptr64
??RHIER_LBI_ITERATOR@@QEAAPEAVHIER_LBI@@XZ
; public: class CONTROL_WINDOW * __ptr64 __cdecl ITER_CTRL::operator()(void) __ptr64
??RITER_CTRL@@QEAAPEAVCONTROL_WINDOW@@XZ
; public: unsigned short const * __ptr64 __cdecl ITER_DEVICE::operator()(void) __ptr64
??RITER_DEVICE@@QEAAPEBGXZ
; public: class NLS_STR * __ptr64 __cdecl ITER_SL_NLS_STR::operator()(void) __ptr64
??RITER_SL_NLS_STR@@QEAAPEAVNLS_STR@@XZ
; public: class NT_GROUP_ENUM_OBJ const * __ptr64 __cdecl NT_GROUP_ENUM_ITER::operator()(long * __ptr64,int) __ptr64
??RNT_GROUP_ENUM_ITER@@QEAAPEBVNT_GROUP_ENUM_OBJ@@PEAJH@Z
; public: virtual void __cdecl CHANGEABLE_SPIN_ITEM::operator+=(unsigned long) __ptr64
??YCHANGEABLE_SPIN_ITEM@@UEAAXK@Z
; public: class XYRECT & __ptr64 __cdecl XYRECT::operator+=(class XYRECT const & __ptr64) __ptr64
??YXYRECT@@QEAAAEAV0@AEBV0@@Z
; public: virtual void __cdecl CHANGEABLE_SPIN_ITEM::operator-=(unsigned long) __ptr64
??ZCHANGEABLE_SPIN_ITEM@@UEAAXK@Z
; void __cdecl `vector constructor iterator'(void * __ptr64,unsigned __int64,int,void * __ptr64 (__cdecl*)(void * __ptr64))
??_H@YAXPEAX_KHP6APEAX0@Z@Z
; void __cdecl `vector destructor iterator'(void * __ptr64,unsigned __int64,int,void (__cdecl*)(void * __ptr64))
??_I@YAXPEAX_KHP6AX0@Z@Z
; void __cdecl `vector vbase constructor iterator'(void * __ptr64,unsigned __int64,int,void * __ptr64 (__cdecl*)(void * __ptr64))
??_J@YAXPEAX_KHP6APEAX0@Z@Z
; private: void __cdecl HIER_LBI::Abandon(void) __ptr64
?Abandon@HIER_LBI@@AEAAXXZ
; private: void __cdecl HIER_LBI::AbandonAllChildren(void) __ptr64
?AbandonAllChildren@HIER_LBI@@AEAAXXZ
; protected: virtual int __cdecl MSG_DIALOG_BASE::ActionOnError(long) __ptr64
?ActionOnError@MSG_DIALOG_BASE@@MEAAHJ@Z
; private: void __cdecl MAGIC_GROUP::ActivateAssocControls(unsigned int,unsigned int,class CONTROL_VALUE * __ptr64) __ptr64
?ActivateAssocControls@MAGIC_GROUP@@AEAAXIIPEAVCONTROL_VALUE@@@Z
; public: virtual void __cdecl UI_EXT_MGR::ActivateExtension(struct HWND__ * __ptr64,unsigned long) __ptr64
?ActivateExtension@UI_EXT_MGR@@UEAAXPEAUHWND__@@K@Z
; public: int __cdecl ARRAY_LIST_CONTROLVAL_CID_PAIR::Add(class CONTROLVAL_CID_PAIR const & __ptr64) __ptr64
?Add@ARRAY_LIST_CONTROLVAL_CID_PAIR@@QEAAHAEBVCONTROLVAL_CID_PAIR@@@Z
; public: static void __cdecl HWND_DLGPTR_CACHE::Add(struct HWND__ * __ptr64,class DIALOG_WINDOW * __ptr64)
?Add@HWND_DLGPTR_CACHE@@SAXPEAUHWND__@@PEAVDIALOG_WINDOW@@@Z
; public: long __cdecl MASK_MAP::Add(class BITFIELD const & __ptr64,class NLS_STR const & __ptr64,int) __ptr64
?Add@MASK_MAP@@QEAAJAEBVBITFIELD@@AEBVNLS_STR@@H@Z
; public: long __cdecl MASK_MAP::Add(struct US_IDS_PAIRS * __ptr64 const,unsigned short) __ptr64
?Add@MASK_MAP@@QEAAJQEAUUS_IDS_PAIRS@@G@Z
; public: long __cdecl SLIST_OF_ASSOCHCFILE::Add(class ASSOCHCFILE const * __ptr64) __ptr64
?Add@SLIST_OF_ASSOCHCFILE@@QEAAJPEBVASSOCHCFILE@@@Z
; public: long __cdecl SLIST_OF_CLIENTDATA::Add(struct CLIENTDATA const * __ptr64) __ptr64
?Add@SLIST_OF_CLIENTDATA@@QEAAJPEBUCLIENTDATA@@@Z
; public: long __cdecl SLIST_OF_NLS_STR::Add(class NLS_STR const * __ptr64) __ptr64
?Add@SLIST_OF_NLS_STR@@QEAAJPEBVNLS_STR@@@Z
; public: long __cdecl SLIST_OF_OS_SID::Add(class OS_SID const * __ptr64) __ptr64
?Add@SLIST_OF_OS_SID@@QEAAJPEBVOS_SID@@@Z
; public: long __cdecl SLIST_OF_TIMER_BASE::Add(class TIMER_BASE const * __ptr64) __ptr64
?Add@SLIST_OF_TIMER_BASE@@QEAAJPEBVTIMER_BASE@@@Z
; public: long __cdecl SLIST_OF_USER_BROWSER_LBI::Add(class USER_BROWSER_LBI const * __ptr64) __ptr64
?Add@SLIST_OF_USER_BROWSER_LBI@@QEAAJPEBVUSER_BROWSER_LBI@@@Z
; protected: long __cdecl USER_BROWSER_LBI_CACHE::AddAliases(class ADMIN_AUTHORITY * __ptr64,unsigned short const * __ptr64,int * __ptr64) __ptr64
?AddAliases@USER_BROWSER_LBI_CACHE@@IEAAJPEAVADMIN_AUTHORITY@@PEBGPEAH@Z
; protected: long __cdecl USER_BROWSER_LBI_CACHE::AddAliases(class SAM_DOMAIN * __ptr64,unsigned short const * __ptr64,int * __ptr64) __ptr64
?AddAliases@USER_BROWSER_LBI_CACHE@@IEAAJPEAVSAM_DOMAIN@@PEBGPEAH@Z
; public: long __cdecl MAGIC_GROUP::AddAssociation(unsigned int,class CONTROL_VALUE * __ptr64) __ptr64
?AddAssociation@MAGIC_GROUP@@QEAAJIPEAVCONTROL_VALUE@@@Z
; public: long __cdecl SPIN_GROUP::AddAssociation(class SPIN_ITEM * __ptr64) __ptr64
?AddAssociation@SPIN_GROUP@@QEAAJPEAVSPIN_ITEM@@@Z
; protected: virtual long __cdecl HIER_LISTBOX::AddChildren(class HIER_LBI * __ptr64) __ptr64
?AddChildren@HIER_LISTBOX@@MEAAJPEAVHIER_LBI@@@Z
; public: static long __cdecl BLTIMP::AddClient(struct HINSTANCE__ * __ptr64,unsigned int,unsigned int,unsigned int,unsigned int)
?AddClient@BLTIMP@@SAJPEAUHINSTANCE__@@IIII@Z
; public: int __cdecl CONTROL_TABLE::AddControl(class CONTROL_WINDOW * __ptr64) __ptr64
?AddControl@CONTROL_TABLE@@QEAAHPEAVCONTROL_WINDOW@@@Z
; private: int __cdecl OWNER_WINDOW::AddControl(class CONTROL_WINDOW * __ptr64) __ptr64
?AddControl@OWNER_WINDOW@@AEAAHPEAVCONTROL_WINDOW@@@Z
; public: int __cdecl OUTLINE_LISTBOX::AddDomain(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
?AddDomain@OUTLINE_LISTBOX@@QEAAHPEBG0H@Z
; protected: long __cdecl USER_BROWSER_LBI_CACHE::AddGroups(class ADMIN_AUTHORITY * __ptr64,unsigned short const * __ptr64,int * __ptr64) __ptr64
?AddGroups@USER_BROWSER_LBI_CACHE@@IEAAJPEAVADMIN_AUTHORITY@@PEBGPEAH@Z
; public: static long __cdecl BLTIMP::AddHelpAssoc(struct HINSTANCE__ * __ptr64,long,unsigned long,unsigned long)
?AddHelpAssoc@BLTIMP@@SAJPEAUHINSTANCE__@@JKK@Z
; public: int __cdecl ARRAY_LIST_CONTROLVAL_CID_PAIR::AddIdemp(class CONTROLVAL_CID_PAIR const & __ptr64) __ptr64
?AddIdemp@ARRAY_LIST_CONTROLVAL_CID_PAIR@@QEAAHAEBVCONTROLVAL_CID_PAIR@@@Z
; public: int __cdecl BLT_LISTBOX::AddItem(class LBI * __ptr64) __ptr64
?AddItem@BLT_LISTBOX@@QEAAHPEAVLBI@@@Z
; public: long __cdecl BROWSER_DOMAIN_CB::AddItem(class BROWSER_DOMAIN * __ptr64) __ptr64
?AddItem@BROWSER_DOMAIN_CB@@QEAAJPEAVBROWSER_DOMAIN@@@Z
; public: int __cdecl HIER_LISTBOX::AddItem(class HIER_LBI * __ptr64,class HIER_LBI * __ptr64,int) __ptr64
?AddItem@HIER_LISTBOX@@QEAAHPEAVHIER_LBI@@0H@Z
; public: long __cdecl LBI_HEAP::AddItem(class LBI * __ptr64) __ptr64
?AddItem@LBI_HEAP@@QEAAJPEAVLBI@@@Z
; protected: int __cdecl OUTLINE_LISTBOX::AddItem(enum OUTLINE_LB_LEVEL,int,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?AddItem@OUTLINE_LISTBOX@@IEAAHW4OUTLINE_LB_LEVEL@@HPEBG11@Z
; public: int __cdecl STRING_LIST_CONTROL::AddItem(unsigned short const * __ptr64) __ptr64
?AddItem@STRING_LIST_CONTROL@@QEAAHPEBG@Z
; public: int __cdecl USER_BROWSER_LB::AddItem(class LBI * __ptr64) __ptr64
?AddItem@USER_BROWSER_LB@@QEAAHPEAVLBI@@@Z
; public: virtual int __cdecl USER_BROWSER_LBI_CACHE::AddItem(class LBI * __ptr64) __ptr64
?AddItem@USER_BROWSER_LBI_CACHE@@UEAAHPEAVLBI@@@Z
; public: virtual int __cdecl USER_LBI_CACHE::AddItem(class LBI * __ptr64) __ptr64
?AddItem@USER_LBI_CACHE@@UEAAHPEAVLBI@@@Z
; protected: int __cdecl LIST_CONTROL::AddItemData(void * __ptr64) __ptr64
?AddItemData@LIST_CONTROL@@IEAAHPEAX@Z
; public: int __cdecl BLT_LISTBOX::AddItemIdemp(class LBI * __ptr64) __ptr64
?AddItemIdemp@BLT_LISTBOX@@QEAAHPEAVLBI@@@Z
; public: int __cdecl STRING_LIST_CONTROL::AddItemIdemp(class NLS_STR const & __ptr64) __ptr64
?AddItemIdemp@STRING_LIST_CONTROL@@QEAAHAEBVNLS_STR@@@Z
; public: int __cdecl STRING_LIST_CONTROL::AddItemIdemp(unsigned short const * __ptr64) __ptr64
?AddItemIdemp@STRING_LIST_CONTROL@@QEAAHPEBG@Z
; public: int __cdecl LBITREE::AddNode(class HIER_LBI * __ptr64,class HIER_LBI * __ptr64,int) __ptr64
?AddNode@LBITREE@@QEAAHPEAVHIER_LBI@@0H@Z
; public: long __cdecl NT_USER_BROWSER_DIALOG::AddSelectedUserBrowserLBIs(class USER_BROWSER_LB * __ptr64,int,int) __ptr64
?AddSelectedUserBrowserLBIs@NT_USER_BROWSER_DIALOG@@QEAAJPEAVUSER_BROWSER_LB@@HH@Z
; public: int __cdecl OUTLINE_LISTBOX::AddServer(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?AddServer@OUTLINE_LISTBOX@@QEAAHPEBG00@Z
; public: void __cdecl HIER_LISTBOX::AddSortedItems(class HIER_LBI * __ptr64 * __ptr64,int,class HIER_LBI * __ptr64,int) __ptr64
?AddSortedItems@HIER_LISTBOX@@QEAAXPEAPEAVHIER_LBI@@HPEAV2@H@Z
; public: long __cdecl USER_BROWSER_LBI_CACHE::AddUsers(class ADMIN_AUTHORITY * __ptr64,unsigned short const * __ptr64,int,int * __ptr64) __ptr64
?AddUsers@USER_BROWSER_LBI_CACHE@@QEAAJPEAVADMIN_AUTHORITY@@PEBGHPEAH@Z
; protected: long __cdecl USER_BROWSER_LBI_CACHE::AddWellKnownSids(class ADMIN_AUTHORITY * __ptr64,unsigned long,int * __ptr64) __ptr64
?AddWellKnownSids@USER_BROWSER_LBI_CACHE@@IEAAJPEAVADMIN_AUTHORITY@@KPEAH@Z
; public: void __cdecl LBI_HEAP::Adjust(void) __ptr64
?Adjust@LBI_HEAP@@QEAAXXZ
; public: class XYRECT & __ptr64 __cdecl XYRECT::AdjustBottom(int) __ptr64
?AdjustBottom@XYRECT@@QEAAAEAV1@H@Z
; private: void __cdecl HIER_LBI::AdjustDescendantCount(int) __ptr64
?AdjustDescendantCount@HIER_LBI@@AEAAXH@Z
; private: void __cdecl LBI_HEAP::AdjustDownwards(int) __ptr64
?AdjustDownwards@LBI_HEAP@@AEAAXH@Z
; public: class XYRECT & __ptr64 __cdecl XYRECT::AdjustLeft(int) __ptr64
?AdjustLeft@XYRECT@@QEAAAEAV1@H@Z
; public: class XYRECT & __ptr64 __cdecl XYRECT::AdjustRight(int) __ptr64
?AdjustRight@XYRECT@@QEAAAEAV1@H@Z
; public: class XYRECT & __ptr64 __cdecl XYRECT::AdjustTop(int) __ptr64
?AdjustTop@XYRECT@@QEAAAEAV1@H@Z
; private: void __cdecl LBI_HEAP::AdjustUpwards(int) __ptr64
?AdjustUpwards@LBI_HEAP@@AEAAXH@Z
; private: void __cdecl HIER_LBI::Adopt(class HIER_LBI * __ptr64,int) __ptr64
?Adopt@HIER_LBI@@AEAAXPEAV1@H@Z
; public: void __cdecl PROGRESS_CONTROL::Advance(int) __ptr64
?Advance@PROGRESS_CONTROL@@QEAAXH@Z
; protected: virtual void __cdecl CONTROL_GROUP::AfterGroupActions(void) __ptr64
?AfterGroupActions@CONTROL_GROUP@@MEAAXXZ
; public: void __cdecl USER_BROWSER_LBI::AliasUnicodeStrToDisplayName(struct _UNICODE_STRING * __ptr64) __ptr64
?AliasUnicodeStrToDisplayName@USER_BROWSER_LBI@@QEAAXPEAU_UNICODE_STRING@@@Z
; public: long __cdecl DLIST_OF_SPIN_ITEM::Append(class SPIN_ITEM * __ptr64 const) __ptr64
?Append@DLIST_OF_SPIN_ITEM@@QEAAJQEAVSPIN_ITEM@@@Z
; public: long __cdecl MENU_BASE::Append(unsigned short const * __ptr64,unsigned int,unsigned int)const  __ptr64
?Append@MENU_BASE@@QEBAJPEBGII@Z
; public: long __cdecl MENU_BASE::Append(unsigned short const * __ptr64,struct HMENU__ * __ptr64,unsigned int)const  __ptr64
?Append@MENU_BASE@@QEBAJPEBGPEAUHMENU__@@I@Z
; public: long __cdecl SLIST_OF_NLS_STR::Append(class NLS_STR const * __ptr64) __ptr64
?Append@SLIST_OF_NLS_STR@@QEAAJPEBVNLS_STR@@@Z
; public: long __cdecl SLIST_OF_STRING_BITSET_PAIR::Append(class STRING_BITSET_PAIR const * __ptr64) __ptr64
?Append@SLIST_OF_STRING_BITSET_PAIR@@QEAAJPEBVSTRING_BITSET_PAIR@@@Z
; public: long __cdecl SLIST_OF_UI_EXT::Append(class UI_EXT const * __ptr64) __ptr64
?Append@SLIST_OF_UI_EXT@@QEAAJPEBVUI_EXT@@@Z
; public: long __cdecl SLIST_OF_ULC_API_BUFFER::Append(class ULC_API_BUFFER const * __ptr64) __ptr64
?Append@SLIST_OF_ULC_API_BUFFER@@QEAAJPEBVULC_API_BUFFER@@@Z
; public: long __cdecl SLIST_OF_USER_BROWSER_LBI::Append(class USER_BROWSER_LBI const * __ptr64) __ptr64
?Append@SLIST_OF_USER_BROWSER_LBI@@QEAAJPEBVUSER_BROWSER_LBI@@@Z
; public: virtual long __cdecl DM_DTE::AppendDataTo(class NLS_STR * __ptr64)const  __ptr64
?AppendDataTo@DM_DTE@@UEBAJPEAVNLS_STR@@@Z
; public: virtual long __cdecl STR_DTE::AppendDataTo(class NLS_STR * __ptr64)const  __ptr64
?AppendDataTo@STR_DTE@@UEBAJPEAVNLS_STR@@@Z
; public: long __cdecl MENU_BASE::AppendSeparator(void)const  __ptr64
?AppendSeparator@MENU_BASE@@QEBAJXZ
; public: long __cdecl SET_OF_AUDIT_CATEGORIES::ApplyPermissionsToCheckBoxes(class BITFIELD * __ptr64,class BITFIELD * __ptr64) __ptr64
?ApplyPermissionsToCheckBoxes@SET_OF_AUDIT_CATEGORIES@@QEAAJPEAVBITFIELD@@0@Z
; public: int __cdecl NT_USER_BROWSER_DIALOG::AreUsersShown(void)const  __ptr64
?AreUsersShown@NT_USER_BROWSER_DIALOG@@QEBAHXZ
; protected: unsigned short const * __ptr64 __cdecl ATOM_BASE::AssignAux(unsigned short const * __ptr64) __ptr64
?AssignAux@ATOM_BASE@@IEAAPEBGPEBG@Z
; public: long __cdecl POPUP_MENU::Attach(class PWND2HWND const & __ptr64) __ptr64
?Attach@POPUP_MENU@@QEAAJAEBVPWND2HWND@@@Z
; long __cdecl BLTDoubleChar(class NLS_STR * __ptr64,unsigned short)
?BLTDoubleChar@@YAJPEAVNLS_STR@@G@Z
; protected: virtual long __cdecl SET_CONTROL::BLTMoveItems(class BLT_LISTBOX * __ptr64,class BLT_LISTBOX * __ptr64) __ptr64
?BLTMoveItems@SET_CONTROL@@MEAAJPEAVBLT_LISTBOX@@0@Z
; int __cdecl BLTPoints2LogUnits(int)
?BLTPoints2LogUnits@@YAHH@Z
; private: void __cdecl LOGON_HOURS_CONTROL::Beep(void)const  __ptr64
?Beep@LOGON_HOURS_CONTROL@@AEBAXXZ
; protected: long __cdecl UI_MENU_EXT::BiasMenuIds(unsigned long) __ptr64
?BiasMenuIds@UI_MENU_EXT@@IEAAJK@Z
; public: int __cdecl USER_LBI_CACHE::BinarySearch(struct _DOMAIN_DISPLAY_USER * __ptr64) __ptr64
?BinarySearch@USER_LBI_CACHE@@QEAAHPEAU_DOMAIN_DISPLAY_USER@@@Z
; public: int __cdecl USER_LBI_CACHE::BinarySearch(class LBI * __ptr64) __ptr64
?BinarySearch@USER_LBI_CACHE@@QEAAHPEAVLBI@@@Z
; public: int __cdecl DEVICE_CONTEXT::BitBlt(class XYPOINT const & __ptr64,class XYDIMENSION,class DEVICE_CONTEXT const & __ptr64,class XYPOINT const & __ptr64,unsigned long) __ptr64
?BitBlt@DEVICE_CONTEXT@@QEAAHAEBVXYPOINT@@VXYDIMENSION@@AEBV1@0K@Z
; public: int __cdecl DEVICE_CONTEXT::BitBlt(int,int,int,int,class DEVICE_CONTEXT const & __ptr64,int,int,unsigned long) __ptr64
?BitBlt@DEVICE_CONTEXT@@QEAAHHHHHAEBV1@HHK@Z
; public: long __cdecl MASK_MAP::BitsToString(class BITFIELD const & __ptr64,class NLS_STR * __ptr64,int,unsigned int * __ptr64) __ptr64
?BitsToString@MASK_MAP@@QEAAJAEBVBITFIELD@@PEAVNLS_STR@@HPEAI@Z
; protected: long __cdecl USER_BROWSER_LBI_CACHE::BuildAndAddLBI(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,void * __ptr64 const,enum UI_SystemSid,enum _SID_NAME_USE,unsigned long) __ptr64
?BuildAndAddLBI@USER_BROWSER_LBI_CACHE@@IEAAJPEBG0000QEAXW4UI_SystemSid@@W4_SID_NAME_USE@@K@Z
; protected: long __cdecl ACCOUNT_NAMES_MLE::BuildNameListFromStrList(class NLS_STR * __ptr64,class STRLIST * __ptr64) __ptr64
?BuildNameListFromStrList@ACCOUNT_NAMES_MLE@@IEAAJPEAVNLS_STR@@PEAVSTRLIST@@@Z
; protected: static __int64 __cdecl BLT_COMBOBOX::CBSubclassProc(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64)
?CBSubclassProc@BLT_COMBOBOX@@KA_JPEAUHWND__@@I_K_J@Z
; protected: virtual int __cdecl BLT_LISTBOX::CD_Char(unsigned short,unsigned short) __ptr64
?CD_Char@BLT_LISTBOX@@MEAAHGG@Z
; protected: virtual int __cdecl BLT_LISTBOX_HAW::CD_Char(unsigned short,unsigned short) __ptr64
?CD_Char@BLT_LISTBOX_HAW@@MEAAHGG@Z
; protected: virtual int __cdecl CONTROL_WINDOW::CD_Char(unsigned short,unsigned short) __ptr64
?CD_Char@CONTROL_WINDOW@@MEAAHGG@Z
; protected: virtual int __cdecl LM_OLLB::CD_Char(unsigned short,unsigned short) __ptr64
?CD_Char@LM_OLLB@@MEAAHGG@Z
; protected: virtual int __cdecl OUTLINE_LISTBOX::CD_Char(unsigned short,unsigned short) __ptr64
?CD_Char@OUTLINE_LISTBOX@@MEAAHGG@Z
; protected: virtual int __cdecl STATELB::CD_Char(unsigned short,unsigned short) __ptr64
?CD_Char@STATELB@@MEAAHGG@Z
; protected: virtual int __cdecl USER_BROWSER_LB::CD_Char(unsigned short,unsigned short) __ptr64
?CD_Char@USER_BROWSER_LB@@MEAAHGG@Z
; protected: int __cdecl BLT_LISTBOX::CD_Char_HAWforHawaii(unsigned short,unsigned short,class HAW_FOR_HAWAII_INFO * __ptr64) __ptr64
?CD_Char_HAWforHawaii@BLT_LISTBOX@@IEAAHGGPEAVHAW_FOR_HAWAII_INFO@@@Z
; protected: int __cdecl USER_BROWSER_LB::CD_Char_HAWforHawaii(unsigned short,unsigned short,class HAW_FOR_HAWAII_INFO * __ptr64) __ptr64
?CD_Char_HAWforHawaii@USER_BROWSER_LB@@IEAAHGGPEAVHAW_FOR_HAWAII_INFO@@@Z
; protected: virtual int __cdecl CONTROL_WINDOW::CD_Draw(struct tagDRAWITEMSTRUCT * __ptr64) __ptr64
?CD_Draw@CONTROL_WINDOW@@MEAAHPEAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual int __cdecl GRAPHICAL_BUTTON::CD_Draw(struct tagDRAWITEMSTRUCT * __ptr64) __ptr64
?CD_Draw@GRAPHICAL_BUTTON@@MEAAHPEAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual int __cdecl GRAPHICAL_BUTTON_WITH_DISABLE::CD_Draw(struct tagDRAWITEMSTRUCT * __ptr64) __ptr64
?CD_Draw@GRAPHICAL_BUTTON_WITH_DISABLE@@MEAAHPEAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual int __cdecl LISTBOX::CD_Draw(struct tagDRAWITEMSTRUCT * __ptr64) __ptr64
?CD_Draw@LISTBOX@@MEAAHPEAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual long __cdecl BLT_LISTBOX::CD_Guiltt(int,class NLS_STR * __ptr64) __ptr64
?CD_Guiltt@BLT_LISTBOX@@MEAAJHPEAVNLS_STR@@@Z
; protected: virtual long __cdecl CONTROL_WINDOW::CD_Guiltt(int,class NLS_STR * __ptr64) __ptr64
?CD_Guiltt@CONTROL_WINDOW@@MEAAJHPEAVNLS_STR@@@Z
; protected: virtual long __cdecl LAZY_LISTBOX::CD_Guiltt(int,class NLS_STR * __ptr64) __ptr64
?CD_Guiltt@LAZY_LISTBOX@@MEAAJHPEAVNLS_STR@@@Z
; protected: virtual int __cdecl BLT_LISTBOX::CD_Measure(struct tagMEASUREITEMSTRUCT * __ptr64) __ptr64
?CD_Measure@BLT_LISTBOX@@MEAAHPEAUtagMEASUREITEMSTRUCT@@@Z
; protected: virtual int __cdecl CONTROL_WINDOW::CD_Measure(struct tagMEASUREITEMSTRUCT * __ptr64) __ptr64
?CD_Measure@CONTROL_WINDOW@@MEAAHPEAUtagMEASUREITEMSTRUCT@@@Z
; protected: virtual int __cdecl CONTROL_WINDOW::CD_VKey(unsigned short,unsigned short) __ptr64
?CD_VKey@CONTROL_WINDOW@@MEAAHGG@Z
; protected: virtual int __cdecl LISTBOX::CD_VKey(unsigned short,unsigned short) __ptr64
?CD_VKey@LISTBOX@@MEAAHGG@Z
; protected: virtual int __cdecl STATELB::CD_VKey(unsigned short,unsigned short) __ptr64
?CD_VKey@STATELB@@MEAAHGG@Z
; protected: virtual int __cdecl USER_BROWSER_LB::CD_VKey(unsigned short,unsigned short) __ptr64
?CD_VKey@USER_BROWSER_LB@@MEAAHGG@Z
; protected: void __cdecl CONTROL_GROUP::CVRestoreValue(class CONTROL_VALUE * __ptr64,int) __ptr64
?CVRestoreValue@CONTROL_GROUP@@IEAAXPEAVCONTROL_VALUE@@H@Z
; public: void __cdecl CUSTOM_CONTROL::CVRestoreValue(int) __ptr64
?CVRestoreValue@CUSTOM_CONTROL@@QEAAXH@Z
; protected: void __cdecl CONTROL_GROUP::CVSaveValue(class CONTROL_VALUE * __ptr64,int) __ptr64
?CVSaveValue@CONTROL_GROUP@@IEAAXPEAVCONTROL_VALUE@@H@Z
; public: void __cdecl CUSTOM_CONTROL::CVSaveValue(int) __ptr64
?CVSaveValue@CUSTOM_CONTROL@@QEAAXH@Z
; private: struct HICON__ * __ptr64 __cdecl SET_CONTROL::CalcAppropriateCursor(class LISTBOX * __ptr64,class LISTBOX * __ptr64,class XYPOINT const & __ptr64)const  __ptr64
?CalcAppropriateCursor@SET_CONTROL@@AEBAPEAUHICON__@@PEAVLISTBOX@@0AEBVXYPOINT@@@Z
; private: static unsigned int __cdecl METALLIC_STR_DTE::CalcBottomTextMargin(void)
?CalcBottomTextMargin@METALLIC_STR_DTE@@CAIXZ
; private: int __cdecl LOGON_HOURS_CONTROL::CalcButtonFromPoint(class XYPOINT)const  __ptr64
?CalcButtonFromPoint@LOGON_HOURS_CONTROL@@AEBAHVXYPOINT@@@Z
; public: static long __cdecl DISPLAY_TABLE::CalcColumnWidths(unsigned int * __ptr64,unsigned int,class OWNER_WINDOW * __ptr64,unsigned int,int)
?CalcColumnWidths@DISPLAY_TABLE@@SAJPEAIIPEAVOWNER_WINDOW@@IH@Z
; private: static int __cdecl POPUP::CalcDefButton(unsigned int,unsigned int)
?CalcDefButton@POPUP@@CAHII@Z
; protected: static int __cdecl OWNER_WINDOW::CalcFixedCDMeasure(struct HWND__ * __ptr64,struct tagMEASUREITEMSTRUCT * __ptr64)
?CalcFixedCDMeasure@OWNER_WINDOW@@KAHPEAUHWND__@@PEAUtagMEASUREITEMSTRUCT@@@Z
; protected: static int __cdecl WINDOW::CalcFixedHeight(struct HWND__ * __ptr64,unsigned int * __ptr64)
?CalcFixedHeight@WINDOW@@KAHPEAUHWND__@@PEAI@Z
; private: void __cdecl LOGON_HOURS_CONTROL::CalcGridRect(class XYRECT * __ptr64)const  __ptr64
?CalcGridRect@LOGON_HOURS_CONTROL@@AEBAXPEAVXYRECT@@@Z
; public: virtual unsigned int __cdecl LBI::CalcHeight(unsigned int) __ptr64
?CalcHeight@LBI@@UEAAII@Z
; public: int __cdecl XYRECT::CalcHeight(void)const  __ptr64
?CalcHeight@XYRECT@@QEBAHXZ
; public: static unsigned short const * __ptr64 __cdecl BLT::CalcHelpFileHC(unsigned long)
?CalcHelpFileHC@BLT@@SAPEBGK@Z
; public: static struct HINSTANCE__ * __ptr64 __cdecl BLT::CalcHmodRsrc(class IDRESOURCE const & __ptr64)
?CalcHmodRsrc@BLT@@SAPEAUHINSTANCE__@@AEBVIDRESOURCE@@@Z
; public: static struct HINSTANCE__ * __ptr64 __cdecl BLT::CalcHmodString(long)
?CalcHmodString@BLT@@SAPEAUHINSTANCE__@@J@Z
; public: class XYRECT & __ptr64 __cdecl XYRECT::CalcIntersect(class XYRECT const & __ptr64,class XYRECT const & __ptr64) __ptr64
?CalcIntersect@XYRECT@@QEAAAEAV1@AEBV1@0@Z
; private: void __cdecl LOGON_HOURS_CONTROL::CalcRectForCell(class XYRECT * __ptr64,int)const  __ptr64
?CalcRectForCell@LOGON_HOURS_CONTROL@@AEBAXPEAVXYRECT@@H@Z
; private: void __cdecl LOGON_HOURS_CONTROL::CalcRectForCorner(class XYRECT * __ptr64)const  __ptr64
?CalcRectForCorner@LOGON_HOURS_CONTROL@@AEBAXPEAVXYRECT@@@Z
; private: void __cdecl LOGON_HOURS_CONTROL::CalcRectForDay(class XYRECT * __ptr64,int)const  __ptr64
?CalcRectForDay@LOGON_HOURS_CONTROL@@AEBAXPEAVXYRECT@@H@Z
; private: void __cdecl LOGON_HOURS_CONTROL::CalcRectForHour(class XYRECT * __ptr64,int)const  __ptr64
?CalcRectForHour@LOGON_HOURS_CONTROL@@AEBAXPEAVXYRECT@@H@Z
; public: long __cdecl BLT_LISTBOX::CalcSingleLineHeight(void) __ptr64
?CalcSingleLineHeight@BLT_LISTBOX@@QEAAJXZ
; private: long __cdecl LOGON_HOURS_CONTROL::CalcSizes(class XYDIMENSION) __ptr64
?CalcSizes@LOGON_HOURS_CONTROL@@AEAAJVXYDIMENSION@@@Z
; private: static unsigned int __cdecl METALLIC_STR_DTE::CalcTopTextMargin(void)
?CalcTopTextMargin@METALLIC_STR_DTE@@CAIXZ
; public: class XYRECT & __ptr64 __cdecl XYRECT::CalcUnion(class XYRECT const & __ptr64,class XYRECT const & __ptr64) __ptr64
?CalcUnion@XYRECT@@QEAAAEAV1@AEBV1@0@Z
; public: int __cdecl XYRECT::CalcWidth(void)const  __ptr64
?CalcWidth@XYRECT@@QEBAHXZ
; public: long __cdecl ACCOUNT_NAMES_MLE::CanonicalizeNames(unsigned short const * __ptr64,class STRLIST * __ptr64) __ptr64
?CanonicalizeNames@ACCOUNT_NAMES_MLE@@QEAAJPEBGPEAVSTRLIST@@@Z
; public: void __cdecl CLIENT_WINDOW::CaptureMouse(void) __ptr64
?CaptureMouse@CLIENT_WINDOW@@QEAAXXZ
; public: void __cdecl DISPATCHER::CaptureMouse(void) __ptr64
?CaptureMouse@DISPATCHER@@QEAAXXZ
; public: void __cdecl WINDOW::Center(struct HWND__ * __ptr64) __ptr64
?Center@WINDOW@@QEAAXPEAUHWND__@@@Z
; public: int __cdecl SPIN_GROUP::ChangeFieldValue(unsigned short,int) __ptr64
?ChangeFieldValue@SPIN_GROUP@@QEAAHGH@Z
; public: void __cdecl AUDIT_CHECKBOXES::CheckFailed(int) __ptr64
?CheckFailed@AUDIT_CHECKBOXES@@QEAAXH@Z
; public: unsigned int __cdecl MENU_BASE::CheckItem(unsigned int,int,unsigned int)const  __ptr64
?CheckItem@MENU_BASE@@QEBAIIHI@Z
; protected: long __cdecl ACCOUNT_NAMES_MLE::CheckLookedUpNames(unsigned short * __ptr64 * __ptr64,class LSA_TRANSLATED_SID_MEM * __ptr64,class STRLIST * __ptr64,class NLS_STR * __ptr64,unsigned short const * __ptr64,long * __ptr64) __ptr64
?CheckLookedUpNames@ACCOUNT_NAMES_MLE@@IEAAJPEAPEAGPEAVLSA_TRANSLATED_SID_MEM@@PEAVSTRLIST@@PEAVNLS_STR@@PEBGPEAJ@Z
; public: static long __cdecl ACCOUNT_NAMES_MLE::CheckNameType(enum _SID_NAME_USE,unsigned long)
?CheckNameType@ACCOUNT_NAMES_MLE@@SAJW4_SID_NAME_USE@@K@Z
; public: int __cdecl CHANGEABLE_SPIN_ITEM::CheckRange(unsigned long)const  __ptr64
?CheckRange@CHANGEABLE_SPIN_ITEM@@QEBAHK@Z
; public: void __cdecl AUDIT_CHECKBOXES::CheckSuccess(int) __ptr64
?CheckSuccess@AUDIT_CHECKBOXES@@QEAAXH@Z
; public: virtual int __cdecl CHANGEABLE_SPIN_ITEM::CheckValid(void) __ptr64
?CheckValid@CHANGEABLE_SPIN_ITEM@@UEAAHXZ
; public: virtual int __cdecl SPIN_SLE_NUM_VALID::CheckValid(void) __ptr64
?CheckValid@SPIN_SLE_NUM_VALID@@UEAAHXZ
; public: class CONTROL_WINDOW * __ptr64 __cdecl CONTROL_TABLE::CidToCtrlPtr(unsigned int)const  __ptr64
?CidToCtrlPtr@CONTROL_TABLE@@QEBAPEAVCONTROL_WINDOW@@I@Z
; protected: class CONTROL_WINDOW * __ptr64 __cdecl OWNER_WINDOW::CidToCtrlPtr(unsigned int)const  __ptr64
?CidToCtrlPtr@OWNER_WINDOW@@IEBAPEAVCONTROL_WINDOW@@I@Z
; public: void __cdecl CONTROL_WINDOW::ClaimFocus(void) __ptr64
?ClaimFocus@CONTROL_WINDOW@@QEAAXXZ
; public: void __cdecl ARRAY_LIST_CONTROLVAL_CID_PAIR::Clear(void) __ptr64
?Clear@ARRAY_LIST_CONTROLVAL_CID_PAIR@@QEAAXXZ
; public: void __cdecl DLIST_OF_SPIN_ITEM::Clear(void) __ptr64
?Clear@DLIST_OF_SPIN_ITEM@@QEAAXXZ
; public: void __cdecl SLIST_OF_ASSOCHCFILE::Clear(void) __ptr64
?Clear@SLIST_OF_ASSOCHCFILE@@QEAAXXZ
; public: void __cdecl SLIST_OF_CLIENTDATA::Clear(void) __ptr64
?Clear@SLIST_OF_CLIENTDATA@@QEAAXXZ
; public: void __cdecl SLIST_OF_OS_SID::Clear(void) __ptr64
?Clear@SLIST_OF_OS_SID@@QEAAXXZ
; public: void __cdecl SLIST_OF_STRING_BITSET_PAIR::Clear(void) __ptr64
?Clear@SLIST_OF_STRING_BITSET_PAIR@@QEAAXXZ
; public: void __cdecl SLIST_OF_TIMER_BASE::Clear(void) __ptr64
?Clear@SLIST_OF_TIMER_BASE@@QEAAXXZ
; public: void __cdecl SLIST_OF_UI_EXT::Clear(void) __ptr64
?Clear@SLIST_OF_UI_EXT@@QEAAXXZ
; public: void __cdecl SLIST_OF_ULC_API_BUFFER::Clear(void) __ptr64
?Clear@SLIST_OF_ULC_API_BUFFER@@QEAAXXZ
; public: void __cdecl SLIST_OF_USER_BROWSER_LBI::Clear(void) __ptr64
?Clear@SLIST_OF_USER_BROWSER_LBI@@QEAAXXZ
; private: void __cdecl H_SPLITTER_BAR::ClearDragBar(void) __ptr64
?ClearDragBar@H_SPLITTER_BAR@@AEAAXXZ
; public: static unsigned long __cdecl BLT_MASTER_TIMER::ClearMasterTimerHotkey(void)
?ClearMasterTimerHotkey@BLT_MASTER_TIMER@@SAKXZ
; public: void __cdecl SLT_ELLIPSIS::ClearText(void) __ptr64
?ClearText@SLT_ELLIPSIS@@QEAAXXZ
; public: void __cdecl WINDOW::ClearText(void) __ptr64
?ClearText@WINDOW@@QEAAXXZ
; public: void __cdecl XYPOINT::ClientToScreen(struct HWND__ * __ptr64) __ptr64
?ClientToScreen@XYPOINT@@QEAAXPEAUHWND__@@@Z
; public: void __cdecl APP_WINDOW::Close(void) __ptr64
?Close@APP_WINDOW@@QEAAXXZ
; public: long __cdecl WIN32_HANDLE::Close(void) __ptr64
?Close@WIN32_HANDLE@@QEAAJXZ
; protected: void __cdecl OPEN_DIALOG_BASE::CloseFile(class OPEN_LBI_BASE * __ptr64) __ptr64
?CloseFile@OPEN_DIALOG_BASE@@IEAAXPEAVOPEN_LBI_BASE@@@Z
; protected: static int __cdecl USER_LBI_CACHE::CmpUniStrs(struct _UNICODE_STRING const * __ptr64,struct _UNICODE_STRING const * __ptr64)
?CmpUniStrs@USER_LBI_CACHE@@KAHPEBU_UNICODE_STRING@@0@Z
; public: long __cdecl LM_OLLB::CollapseDomain(int) __ptr64
?CollapseDomain@LM_OLLB@@QEAAJH@Z
; public: long __cdecl LM_OLLB::CollapseDomain(void) __ptr64
?CollapseDomain@LM_OLLB@@QEAAJXZ
; public: void __cdecl HIER_LISTBOX::CollapseItem(int,int) __ptr64
?CollapseItem@HIER_LISTBOX@@QEAAXHH@Z
; public: void __cdecl HIER_LISTBOX::CollapseItem(class HIER_LBI * __ptr64,int) __ptr64
?CollapseItem@HIER_LISTBOX@@QEAAXPEAVHIER_LBI@@H@Z
; int __cdecl CommDlgHookProc(struct HWND__ * __ptr64,unsigned short,unsigned __int64,__int64)
?CommDlgHookProc@@YAHPEAUHWND__@@G_K_J@Z
; public: unsigned __int64 __cdecl WINDOW::Command(unsigned int,unsigned __int64,__int64)const  __ptr64
?Command@WINDOW@@QEBA_KI_K_J@Z
; public: virtual int __cdecl BROWSER_DOMAIN_LBI::Compare(class LBI const * __ptr64)const  __ptr64
?Compare@BROWSER_DOMAIN_LBI@@UEBAHPEBVLBI@@@Z
; public: virtual int __cdecl BROWSER_DOMAIN_LBI_PB::Compare(class LBI const * __ptr64)const  __ptr64
?Compare@BROWSER_DOMAIN_LBI_PB@@UEBAHPEBVLBI@@@Z
; public: int __cdecl CONTROLVAL_CID_PAIR::Compare(class CONTROLVAL_CID_PAIR const * __ptr64)const  __ptr64
?Compare@CONTROLVAL_CID_PAIR@@QEBAHPEBV1@@Z
; public: virtual int __cdecl LBI::Compare(class LBI const * __ptr64)const  __ptr64
?Compare@LBI@@UEBAHPEBV1@@Z
; public: virtual int __cdecl OLLB_ENTRY::Compare(class LBI const * __ptr64)const  __ptr64
?Compare@OLLB_ENTRY@@UEBAHPEBVLBI@@@Z
; protected: virtual int __cdecl STLBITEM::Compare(class LBI const * __ptr64)const  __ptr64
?Compare@STLBITEM@@MEBAHPEBVLBI@@@Z
; public: virtual int __cdecl USER_BROWSER_LBI::Compare(class LBI const * __ptr64)const  __ptr64
?Compare@USER_BROWSER_LBI@@UEBAHPEBVLBI@@@Z
; protected: virtual int __cdecl USER_BROWSER_LBI_CACHE::Compare(class LBI const * __ptr64,class LBI const * __ptr64)const  __ptr64
?Compare@USER_BROWSER_LBI_CACHE@@MEBAHPEBVLBI@@0@Z
; protected: virtual int __cdecl USER_BROWSER_LBI_CACHE::Compare(class LBI const * __ptr64,struct _DOMAIN_DISPLAY_USER const * __ptr64)const  __ptr64
?Compare@USER_BROWSER_LBI_CACHE@@MEBAHPEBVLBI@@PEBU_DOMAIN_DISPLAY_USER@@@Z
; public: int __cdecl USER_BROWSER_LBI::CompareAux(class LBI const * __ptr64)const  __ptr64
?CompareAux@USER_BROWSER_LBI@@QEBAHPEBVLBI@@@Z
; protected: static int __cdecl USER_BROWSER_LBI_CACHE::CompareCacheLBIs(struct _ULC_ENTRY_BASE const * __ptr64,struct _ULC_ENTRY_BASE const * __ptr64)
?CompareCacheLBIs@USER_BROWSER_LBI_CACHE@@KAHPEBU_ULC_ENTRY_BASE@@0@Z
; protected: static int __cdecl USER_LBI_CACHE::CompareLogonNames(void const * __ptr64,void const * __ptr64)
?CompareLogonNames@USER_LBI_CACHE@@KAHPEBX0@Z
; public: virtual int __cdecl LBI::Compare_HAWforHawaii(class NLS_STR const & __ptr64)const  __ptr64
?Compare_HAWforHawaii@LBI@@UEBAHAEBVNLS_STR@@@Z
; public: virtual int __cdecl USER_BROWSER_LBI::Compare_HAWforHawaii(class NLS_STR const & __ptr64)const  __ptr64
?Compare_HAWforHawaii@USER_BROWSER_LBI@@UEBAHAEBVNLS_STR@@@Z
; int __cdecl ComparepLBIs(class USER_BROWSER_LBI * __ptr64 const * __ptr64,class USER_BROWSER_LBI * __ptr64 const * __ptr64)
?ComparepLBIs@@YAHPEBQEAVUSER_BROWSER_LBI@@0@Z
; public: long __cdecl PROMPT_AND_CONNECT::Connect(void) __ptr64
?Connect@PROMPT_AND_CONNECT@@QEAAJXZ
; public: int __cdecl XYRECT::ContainsXY(class XYPOINT)const  __ptr64
?ContainsXY@XYRECT@@QEBAHVXYPOINT@@@Z
; protected: long __cdecl SLT_ELLIPSIS::ConvertAndSetStr(void) __ptr64
?ConvertAndSetStr@SLT_ELLIPSIS@@IEAAJXZ
; public: void __cdecl XYRECT::ConvertClientToScreen(struct HWND__ * __ptr64) __ptr64
?ConvertClientToScreen@XYRECT@@QEAAXPEAUHWND__@@@Z
; public: void __cdecl XYRECT::ConvertScreenToClient(struct HWND__ * __ptr64) __ptr64
?ConvertScreenToClient@XYRECT@@QEAAXPEAUHWND__@@@Z
; protected: virtual class LBI * __ptr64 __cdecl USER_BROWSER_LBI_CACHE::CreateLBI(struct _DOMAIN_DISPLAY_USER const * __ptr64) __ptr64
?CreateLBI@USER_BROWSER_LBI_CACHE@@MEAAPEAVLBI@@PEBU_DOMAIN_DISPLAY_USER@@@Z
; public: long __cdecl ACCOUNT_NAMES_MLE::CreateLBIListFromNames(unsigned short const * __ptr64,unsigned short const * __ptr64,class SLIST_OF_USER_BROWSER_LBI * __ptr64,class SLIST_OF_USER_BROWSER_LBI * __ptr64,long * __ptr64,class NLS_STR * __ptr64) __ptr64
?CreateLBIListFromNames@ACCOUNT_NAMES_MLE@@QEAAJPEBG0PEAVSLIST_OF_USER_BROWSER_LBI@@1PEAJPEAVNLS_STR@@@Z
; long __cdecl CreateLBIsFromSids(void * __ptr64 const * __ptr64,unsigned long,void * __ptr64 const,class LSA_POLICY * __ptr64,unsigned short const * __ptr64,class USER_BROWSER_LB * __ptr64,class SLIST_OF_USER_BROWSER_LBI * __ptr64)
?CreateLBIsFromSids@@YAJPEBQEAXKQEAXPEAVLSA_POLICY@@PEBGPEAVUSER_BROWSER_LB@@PEAVSLIST_OF_USER_BROWSER_LBI@@@Z
; private: void __cdecl GRAPHICAL_BUTTON::CtAux(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?CtAux@GRAPHICAL_BUTTON@@AEAAXPEBG00@Z
; private: void __cdecl H_SPLITTER_BAR::CtAux(void) __ptr64
?CtAux@H_SPLITTER_BAR@@AEAAXXZ
; private: long __cdecl POPUP_MENU::CtAux(struct HMENU__ * __ptr64) __ptr64
?CtAux@POPUP_MENU@@AEAAJPEAUHMENU__@@@Z
; private: void __cdecl PROGRESS_CONTROL::CtAux(void) __ptr64
?CtAux@PROGRESS_CONTROL@@AEAAXXZ
; public: long __cdecl MENU_BASE::Delete(unsigned int,unsigned int)const  __ptr64
?Delete@MENU_BASE@@QEBAJII@Z
; public: void __cdecl LIST_CONTROL::DeleteAllItems(void) __ptr64
?DeleteAllItems@LIST_CONTROL@@QEAAXXZ
; protected: void __cdecl WIN32_THREAD::DeleteAndExit(unsigned int) __ptr64
?DeleteAndExit@WIN32_THREAD@@IEAAXI@Z
; public: void __cdecl HIER_LISTBOX::DeleteChildren(class HIER_LBI * __ptr64) __ptr64
?DeleteChildren@HIER_LISTBOX@@QEAAXPEAVHIER_LBI@@@Z
; public: void __cdecl DEVICE_COMBO::DeleteCurrentDeviceName(void) __ptr64
?DeleteCurrentDeviceName@DEVICE_COMBO@@QEAAXXZ
; public: int __cdecl HIER_LISTBOX::DeleteItem(int,int) __ptr64
?DeleteItem@HIER_LISTBOX@@QEAAHHH@Z
; public: int __cdecl LIST_CONTROL::DeleteItem(int) __ptr64
?DeleteItem@LIST_CONTROL@@QEAAHH@Z
; public: static void __cdecl BLT::DeregisterHelpFile(struct HINSTANCE__ * __ptr64,unsigned long)
?DeregisterHelpFile@BLT@@SAXPEAUHINSTANCE__@@K@Z
; public: long __cdecl POPUP_MENU::Destroy(void) __ptr64
?Destroy@POPUP_MENU@@QEAAJXZ
; protected: void __cdecl DIALOG_WINDOW::Dismiss(unsigned int) __ptr64
?Dismiss@DIALOG_WINDOW@@IEAAXI@Z
; protected: void __cdecl DIALOG_WINDOW::DismissMsg(long,unsigned int) __ptr64
?DismissMsg@DIALOG_WINDOW@@IEAAXJI@Z
; protected: virtual int __cdecl DISPATCHER::Dispatch(class EVENT const & __ptr64,unsigned long * __ptr64) __ptr64
?Dispatch@DISPATCHER@@MEAAHAEBVEVENT@@PEAK@Z
; protected: virtual int __cdecl H_SPLITTER_BAR::Dispatch(class EVENT const & __ptr64,unsigned long * __ptr64) __ptr64
?Dispatch@H_SPLITTER_BAR@@MEAAHAEBVEVENT@@PEAK@Z
; protected: virtual int __cdecl LB_COLUMN_HEADER::Dispatch(class EVENT const & __ptr64,unsigned long * __ptr64) __ptr64
?Dispatch@LB_COLUMN_HEADER@@MEAAHAEBVEVENT@@PEAK@Z
; protected: virtual __int64 __cdecl APP_WINDOW::DispatchMessageW(class EVENT const & __ptr64) __ptr64
?DispatchMessageW@APP_WINDOW@@MEAA_JAEBVEVENT@@@Z
; protected: virtual __int64 __cdecl CLIENT_WINDOW::DispatchMessageW(class EVENT const & __ptr64) __ptr64
?DispatchMessageW@CLIENT_WINDOW@@MEAA_JAEBVEVENT@@@Z
; protected: virtual void __cdecl PROC_TIMER::DispatchTimer(void) __ptr64
?DispatchTimer@PROC_TIMER@@MEAAXXZ
; protected: virtual void __cdecl TIMER::DispatchTimer(void) __ptr64
?DispatchTimer@TIMER@@MEAAXXZ
; protected: virtual void __cdecl TIMER_BASE::DispatchTimer(void) __ptr64
?DispatchTimer@TIMER_BASE@@MEAAXXZ
; protected: virtual void __cdecl WINDOW_TIMER::DispatchTimer(void) __ptr64
?DispatchTimer@WINDOW_TIMER@@MEAAXXZ
; private: void __cdecl APPLICATION::DisplayCtError(long) __ptr64
?DisplayCtError@APPLICATION@@AEAAXJ@Z
; protected: virtual void __cdecl SPIN_SLE_NUM_VALID::DisplayErrorMsg(void) __ptr64
?DisplayErrorMsg@SPIN_SLE_NUM_VALID@@MEAAXXZ
; unsigned int __cdecl DisplayGenericError(class OWNINGWND const & __ptr64,long,long,unsigned short const * __ptr64,unsigned short const * __ptr64,enum MSG_SEVERITY)
?DisplayGenericError@@YAIAEBVOWNINGWND@@JJPEBG1W4MSG_SEVERITY@@@Z
; unsigned int __cdecl DisplayGenericError(class OWNINGWND const & __ptr64,long,long,unsigned short const * __ptr64,enum MSG_SEVERITY)
?DisplayGenericError@@YAIAEBVOWNINGWND@@JJPEBGW4MSG_SEVERITY@@@Z
; private: void __cdecl SPIN_SLE_NUM::DisplayNum(unsigned long) __ptr64
?DisplayNum@SPIN_SLE_NUM@@AEAAXK@Z
; public: static __int64 __cdecl DIALOG_WINDOW::DlgProc(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64)
?DlgProc@DIALOG_WINDOW@@SA_JPEAUHWND__@@I_K_J@Z
; public: virtual long __cdecl SET_CONTROL::DoAdd(void) __ptr64
?DoAdd@SET_CONTROL@@UEAAJXZ
; private: long __cdecl SET_CONTROL::DoAddOrRemove(class LISTBOX * __ptr64,class LISTBOX * __ptr64) __ptr64
?DoAddOrRemove@SET_CONTROL@@AEAAJPEAVLISTBOX@@0@Z
; public: int __cdecl SPIN_GROUP::DoArrowCommand(unsigned int,unsigned short) __ptr64
?DoArrowCommand@SPIN_GROUP@@QEAAHIG@Z
; public: void __cdecl LOGON_HOURS_CONTROL::DoBanButton(void) __ptr64
?DoBanButton@LOGON_HOURS_CONTROL@@QEAAXXZ
; private: void __cdecl LOGON_HOURS_CONTROL::DoButtonClick(int) __ptr64
?DoButtonClick@LOGON_HOURS_CONTROL@@AEAAXH@Z
; private: void __cdecl LOGON_HOURS_CONTROL::DoButtonDownVisuals(void) __ptr64
?DoButtonDownVisuals@LOGON_HOURS_CONTROL@@AEAAXXZ
; private: void __cdecl LOGON_HOURS_CONTROL::DoButtonUpVisuals(int) __ptr64
?DoButtonUpVisuals@LOGON_HOURS_CONTROL@@AEAAXH@Z
; public: int __cdecl DISPATCHER::DoChar(class CHAR_EVENT const & __ptr64) __ptr64
?DoChar@DISPATCHER@@QEAAHAEBVCHAR_EVENT@@@Z
; public: int __cdecl SPIN_GROUP::DoChar(class CHAR_EVENT const & __ptr64) __ptr64
?DoChar@SPIN_GROUP@@QEAAHAEBVCHAR_EVENT@@@Z
; public: int __cdecl SPIN_GROUP::DoNewFocus(class SPIN_ITEM * __ptr64) __ptr64
?DoNewFocus@SPIN_GROUP@@QEAAHPEAVSPIN_ITEM@@@Z
; protected: virtual long __cdecl CANCEL_TASK_DIALOG::DoOneItem(unsigned __int64,int * __ptr64,int * __ptr64,long * __ptr64) __ptr64
?DoOneItem@CANCEL_TASK_DIALOG@@MEAAJ_KPEAH1PEAJ@Z
; public: void __cdecl LOGON_HOURS_CONTROL::DoPermitButton(void) __ptr64
?DoPermitButton@LOGON_HOURS_CONTROL@@QEAAXXZ
; public: virtual long __cdecl SET_CONTROL::DoRemove(void) __ptr64
?DoRemove@SET_CONTROL@@UEAAJXZ
; protected: long __cdecl NT_FIND_ACCOUNT_DIALOG::DoSearch(void) __ptr64
?DoSearch@NT_FIND_ACCOUNT_DIALOG@@IEAAJXZ
; public: int __cdecl DISPATCHER::DoUserMessage(class EVENT const & __ptr64) __ptr64
?DoUserMessage@DISPATCHER@@QEAAHAEBVEVENT@@@Z
; private: int __cdecl LOGON_HOURS_CONTROL::DrawAllButtons(class PAINT_DISPLAY_CONTEXT & __ptr64)const  __ptr64
?DrawAllButtons@LOGON_HOURS_CONTROL@@AEBAHAEAVPAINT_DISPLAY_CONTEXT@@@Z
; private: int __cdecl LOGON_HOURS_CONTROL::DrawBackground(class PAINT_DISPLAY_CONTEXT & __ptr64)const  __ptr64
?DrawBackground@LOGON_HOURS_CONTROL@@AEBAHAEAVPAINT_DISPLAY_CONTEXT@@@Z
; private: void __cdecl LOGON_HOURS_CONTROL::DrawCurrentSelection(class DISPLAY_CONTEXT const & __ptr64)const  __ptr64
?DrawCurrentSelection@LOGON_HOURS_CONTROL@@AEBAXAEBVDISPLAY_CONTEXT@@@Z
; private: void __cdecl LOGON_HOURS_CONTROL::DrawFocusOnCell(class DISPLAY_CONTEXT const & __ptr64,int)const  __ptr64
?DrawFocusOnCell@LOGON_HOURS_CONTROL@@AEBAXAEBVDISPLAY_CONTEXT@@H@Z
; private: void __cdecl LOGON_HOURS_CONTROL::DrawFocusOnCornerButton(class DISPLAY_CONTEXT const & __ptr64)const  __ptr64
?DrawFocusOnCornerButton@LOGON_HOURS_CONTROL@@AEBAXAEBVDISPLAY_CONTEXT@@@Z
; private: void __cdecl LOGON_HOURS_CONTROL::DrawFocusOnDayButton(class DISPLAY_CONTEXT const & __ptr64,int)const  __ptr64
?DrawFocusOnDayButton@LOGON_HOURS_CONTROL@@AEBAXAEBVDISPLAY_CONTEXT@@H@Z
; private: void __cdecl LOGON_HOURS_CONTROL::DrawFocusOnHourButton(class DISPLAY_CONTEXT const & __ptr64,int)const  __ptr64
?DrawFocusOnHourButton@LOGON_HOURS_CONTROL@@AEBAXAEBVDISPLAY_CONTEXT@@H@Z
; public: void __cdecl DEVICE_CONTEXT::DrawFocusRect(struct tagRECT const * __ptr64)const  __ptr64
?DrawFocusRect@DEVICE_CONTEXT@@QEBAXPEBUtagRECT@@@Z
; protected: void __cdecl FOCUS_CHECKBOX::DrawFocusRect(class DEVICE_CONTEXT * __ptr64,struct tagRECT * __ptr64,int) __ptr64
?DrawFocusRect@FOCUS_CHECKBOX@@IEAAXPEAVDEVICE_CONTEXT@@PEAUtagRECT@@H@Z
; private: void __cdecl LOGON_HOURS_CONTROL::DrawFocusSomewhere(class DISPLAY_CONTEXT const & __ptr64,int)const  __ptr64
?DrawFocusSomewhere@LOGON_HOURS_CONTROL@@AEBAXAEBVDISPLAY_CONTEXT@@H@Z
; private: int __cdecl LOGON_HOURS_CONTROL::DrawGridSetting(class PAINT_DISPLAY_CONTEXT & __ptr64)const  __ptr64
?DrawGridSetting@LOGON_HOURS_CONTROL@@AEBAHAEAVPAINT_DISPLAY_CONTEXT@@@Z
; private: int __cdecl LOGON_HOURS_CONTROL::DrawGridWires(class PAINT_DISPLAY_CONTEXT & __ptr64)const  __ptr64
?DrawGridWires@LOGON_HOURS_CONTROL@@AEBAHAEAVPAINT_DISPLAY_CONTEXT@@@Z
; private: int __cdecl APP_WINDOW::DrawIcon(void) __ptr64
?DrawIcon@APP_WINDOW@@AEAAHXZ
; public: long __cdecl APP_WINDOW::DrawMenuBar(void)const  __ptr64
?DrawMenuBar@APP_WINDOW@@QEBAJXZ
; private: void __cdecl LOGON_HOURS_CONTROL::DrawOneCornerButton(class PAINT_DISPLAY_CONTEXT & __ptr64,class XYRECT const & __ptr64,int,struct HBRUSH__ * __ptr64,struct HPEN__ * __ptr64,struct HPEN__ * __ptr64)const  __ptr64
?DrawOneCornerButton@LOGON_HOURS_CONTROL@@AEBAXAEAVPAINT_DISPLAY_CONTEXT@@AEBVXYRECT@@HPEAUHBRUSH__@@PEAUHPEN__@@3@Z
; private: int __cdecl LOGON_HOURS_CONTROL::DrawOneDayBar(class PAINT_DISPLAY_CONTEXT & __ptr64,int,int,int,struct HBRUSH__ * __ptr64)const  __ptr64
?DrawOneDayBar@LOGON_HOURS_CONTROL@@AEBAHAEAVPAINT_DISPLAY_CONTEXT@@HHHPEAUHBRUSH__@@@Z
; private: void __cdecl LOGON_HOURS_CONTROL::DrawOneFlatButton(class PAINT_DISPLAY_CONTEXT & __ptr64,class XYRECT const & __ptr64,int,struct HBRUSH__ * __ptr64,struct HPEN__ * __ptr64,struct HPEN__ * __ptr64)const  __ptr64
?DrawOneFlatButton@LOGON_HOURS_CONTROL@@AEBAXAEAVPAINT_DISPLAY_CONTEXT@@AEBVXYRECT@@HPEAUHBRUSH__@@PEAUHPEN__@@3@Z
; public: void __cdecl DEVICE_CONTEXT::DrawRect(struct tagRECT const * __ptr64)const  __ptr64
?DrawRect@DEVICE_CONTEXT@@QEBAXPEBUtagRECT@@@Z
; private: void __cdecl LOGON_HOURS_CONTROL::DrawSelectionOnCell(class DISPLAY_CONTEXT const & __ptr64,int)const  __ptr64
?DrawSelectionOnCell@LOGON_HOURS_CONTROL@@AEBAXAEBVDISPLAY_CONTEXT@@H@Z
; private: void __cdecl LOGON_HOURS_CONTROL::DrawSelectionOnCells(class DISPLAY_CONTEXT const & __ptr64,int,int)const  __ptr64
?DrawSelectionOnCells@LOGON_HOURS_CONTROL@@AEBAXAEBVDISPLAY_CONTEXT@@HH@Z
; public: int __cdecl DEVICE_CONTEXT::DrawTextW(class NLS_STR const & __ptr64,struct tagRECT * __ptr64,unsigned int) __ptr64
?DrawTextW@DEVICE_CONTEXT@@QEAAHAEBVNLS_STR@@PEAUtagRECT@@I@Z
; private: int __cdecl POPUP::Emergency(void)const  __ptr64
?Emergency@POPUP@@AEBAHXZ
; public: void __cdecl AUDIT_CHECKBOXES::Enable(int,int) __ptr64
?Enable@AUDIT_CHECKBOXES@@QEAAXHH@Z
; public: void __cdecl MAGIC_GROUP::Enable(int) __ptr64
?Enable@MAGIC_GROUP@@QEAAXH@Z
; public: void __cdecl MENUITEM::Enable(int) __ptr64
?Enable@MENUITEM@@QEAAXH@Z
; public: void __cdecl RADIO_GROUP::Enable(int) __ptr64
?Enable@RADIO_GROUP@@QEAAXH@Z
; public: void __cdecl SET_OF_AUDIT_CATEGORIES::Enable(int,int) __ptr64
?Enable@SET_OF_AUDIT_CATEGORIES@@QEAAXHH@Z
; public: void __cdecl TIMER_BASE::Enable(int) __ptr64
?Enable@TIMER_BASE@@QEAAXH@Z
; public: void __cdecl WINDOW::Enable(int) __ptr64
?Enable@WINDOW@@QEAAXH@Z
; protected: void __cdecl NT_USER_BROWSER_DIALOG::EnableBrowsing(int) __ptr64
?EnableBrowsing@NT_USER_BROWSER_DIALOG@@IEAAXH@Z
; protected: void __cdecl SET_CONTROL::EnableButtons(void) __ptr64
?EnableButtons@SET_CONTROL@@IEAAXXZ
; public: unsigned int __cdecl MENU_BASE::EnableItem(unsigned int,int,unsigned int)const  __ptr64
?EnableItem@MENU_BASE@@QEBAIIHI@Z
; public: void __cdecl SET_CONTROL::EnableMoves(int) __ptr64
?EnableMoves@SET_CONTROL@@QEAAXH@Z
; public: void __cdecl TRISTATE::EnableThirdState(int) __ptr64
?EnableThirdState@TRISTATE@@QEAAXH@Z
; public: static long __cdecl BLTIMP::EnterBLTCritSect(void)
?EnterBLTCritSect@BLTIMP@@SAJXZ
; public: static long __cdecl BLTIMP::EnterResourceCritSect(void)
?EnterResourceCritSect@BLTIMP@@SAJXZ
; public: long __cdecl MASK_MAP::EnumBits(class BITFIELD * __ptr64,int * __ptr64,int * __ptr64,int) __ptr64
?EnumBits@MASK_MAP@@QEAAJPEAVBITFIELD@@PEAH1H@Z
; public: long __cdecl MASK_MAP::EnumStrings(class NLS_STR * __ptr64,int * __ptr64,int * __ptr64,int) __ptr64
?EnumStrings@MASK_MAP@@QEAAJPEAVNLS_STR@@PEAH1H@Z
; protected: void __cdecl FOCUS_CHECKBOX::EraseFocusRect(class DEVICE_CONTEXT * __ptr64,struct tagRECT * __ptr64) __ptr64
?EraseFocusRect@FOCUS_CHECKBOX@@IEAAXPEAVDEVICE_CONTEXT@@PEAUtagRECT@@@Z
; private: void __cdecl LOGON_HOURS_CONTROL::EraseSelection(class DISPLAY_CONTEXT const & __ptr64) __ptr64
?EraseSelection@LOGON_HOURS_CONTROL@@AEAAXAEBVDISPLAY_CONTEXT@@@Z
; protected: void __cdecl WIN32_THREAD::Exit(unsigned int) __ptr64
?Exit@WIN32_THREAD@@IEAAXI@Z
; public: long __cdecl DOMAIN_FILL_THREAD::ExitThread(void) __ptr64
?ExitThread@DOMAIN_FILL_THREAD@@QEAAJXZ
; public: long __cdecl FOCUSDLG_DATA_THREAD::ExitThread(void) __ptr64
?ExitThread@FOCUSDLG_DATA_THREAD@@QEAAJXZ
; private: int __cdecl HIER_LISTBOX::ExpandChildren(int,class HIER_LBI * __ptr64) __ptr64
?ExpandChildren@HIER_LISTBOX@@AEAAHHPEAVHIER_LBI@@@Z
; public: long __cdecl LM_OLLB::ExpandDomain(int) __ptr64
?ExpandDomain@LM_OLLB@@QEAAJH@Z
; public: long __cdecl LM_OLLB::ExpandDomain(void) __ptr64
?ExpandDomain@LM_OLLB@@QEAAJXZ
; public: long __cdecl HIER_LISTBOX::ExpandItem(int) __ptr64
?ExpandItem@HIER_LISTBOX@@QEAAJH@Z
; public: long __cdecl HIER_LISTBOX::ExpandItem(class HIER_LBI * __ptr64) __ptr64
?ExpandItem@HIER_LISTBOX@@QEAAJPEAVHIER_LBI@@@Z
; public: int __cdecl DEVICE_CONTEXT::ExtTextOutW(int,int,unsigned int,struct tagRECT const * __ptr64,class NLS_STR const & __ptr64,int * __ptr64) __ptr64
?ExtTextOutW@DEVICE_CONTEXT@@QEAAHHHIPEBUtagRECT@@AEBVNLS_STR@@PEAH@Z
; public: int __cdecl DEVICE_CONTEXT::ExtTextOutW(int,int,unsigned int,struct tagRECT const * __ptr64,unsigned short const * __ptr64,int,int * __ptr64) __ptr64
?ExtTextOutW@DEVICE_CONTEXT@@QEAAHHHIPEBUtagRECT@@PEBGHPEAH@Z
; public: long __cdecl NT_GROUP_BROWSER_LB::Fill(void * __ptr64 const * __ptr64,unsigned long,class SAM_DOMAIN const * __ptr64,class LSA_POLICY * __ptr64,unsigned short const * __ptr64) __ptr64
?Fill@NT_GROUP_BROWSER_LB@@QEAAJPEBQEAXKPEBVSAM_DOMAIN@@PEAVLSA_POLICY@@PEBG@Z
; public: long __cdecl OPEN_LBOX_BASE::Fill(void) __ptr64
?Fill@OPEN_LBOX_BASE@@QEAAJXZ
; public: long __cdecl USER_BROWSER_LBI_CACHE::Fill(class ADMIN_AUTHORITY * __ptr64,unsigned short const * __ptr64,unsigned long,int,int,int * __ptr64) __ptr64
?Fill@USER_BROWSER_LBI_CACHE@@QEAAJPEAVADMIN_AUTHORITY@@PEBGKHHPEAH@Z
; public: void __cdecl LM_OLLB::FillAllInfo(class BROWSE_DOMAIN_ENUM * __ptr64,class SERVER1_ENUM * __ptr64,unsigned short const * __ptr64) __ptr64
?FillAllInfo@LM_OLLB@@QEAAXPEAVBROWSE_DOMAIN_ENUM@@PEAVSERVER1_ENUM@@PEBG@Z
; private: void __cdecl MSGPOPUP_DIALOG::FillButtonArray(unsigned int,int * __ptr64,int * __ptr64) __ptr64
?FillButtonArray@MSGPOPUP_DIALOG@@AEAAXIPEAH0@Z
; private: long __cdecl DEVICE_COMBO::FillDevices(void) __ptr64
?FillDevices@DEVICE_COMBO@@AEAAJXZ
; private: long __cdecl LM_OLLB::FillDomains(unsigned long,unsigned short const * __ptr64) __ptr64
?FillDomains@LM_OLLB@@AEAAJKPEBG@Z
; public: long __cdecl NT_GROUP_BROWSER_LB::FillGlobalGroupMembers(class OS_SID const * __ptr64,class SAM_DOMAIN const * __ptr64,class SAM_DOMAIN const * __ptr64,class LSA_POLICY * __ptr64,unsigned short const * __ptr64) __ptr64
?FillGlobalGroupMembers@NT_GROUP_BROWSER_LB@@QEAAJPEBVOS_SID@@PEBVSAM_DOMAIN@@1PEAVLSA_POLICY@@PEBG@Z
; public: long __cdecl NT_GROUP_BROWSER_LB::FillLocalGroupMembers(class OS_SID const * __ptr64,class SAM_DOMAIN const * __ptr64,class SAM_DOMAIN const * __ptr64,class LSA_POLICY * __ptr64,unsigned short const * __ptr64) __ptr64
?FillLocalGroupMembers@NT_GROUP_BROWSER_LB@@QEAAJPEBVOS_SID@@PEBVSAM_DOMAIN@@1PEAVLSA_POLICY@@PEBG@Z
; private: long __cdecl LM_OLLB::FillServers(unsigned short const * __ptr64,unsigned int * __ptr64) __ptr64
?FillServers@LM_OLLB@@AEAAJPEBGPEAI@Z
; protected: virtual int __cdecl DIALOG_WINDOW::FilterMessage(struct tagMSG * __ptr64) __ptr64
?FilterMessage@DIALOG_WINDOW@@MEAAHPEAUtagMSG@@@Z
; protected: virtual int __cdecl HAS_MESSAGE_PUMP::FilterMessage(struct tagMSG * __ptr64) __ptr64
?FilterMessage@HAS_MESSAGE_PUMP@@MEAAHPEAUtagMSG@@@Z
; public: int __cdecl ARRAY_LIST_CONTROLVAL_CID_PAIR::Find(class CONTROLVAL_CID_PAIR const & __ptr64)const  __ptr64
?Find@ARRAY_LIST_CONTROLVAL_CID_PAIR@@QEBAHAEBVCONTROLVAL_CID_PAIR@@@Z
; public: static class DIALOG_WINDOW * __ptr64 __cdecl HWND_DLGPTR_CACHE::Find(struct HWND__ * __ptr64)
?Find@HWND_DLGPTR_CACHE@@SAPEAVDIALOG_WINDOW@@PEAUHWND__@@@Z
; private: unsigned int __cdecl MAGIC_GROUP::FindAssocRadioButton(class CONTROL_VALUE * __ptr64) __ptr64
?FindAssocRadioButton@MAGIC_GROUP@@AEAAIPEAVCONTROL_VALUE@@@Z
; public: class BROWSER_DOMAIN * __ptr64 __cdecl NT_USER_BROWSER_DIALOG::FindDomain(class OS_SID const * __ptr64) __ptr64
?FindDomain@NT_USER_BROWSER_DIALOG@@QEAAPEAVBROWSER_DOMAIN@@PEBVOS_SID@@@Z
; public: class UI_EXT * __ptr64 __cdecl UI_EXT_MGR::FindExtensionByDelta(unsigned long) __ptr64
?FindExtensionByDelta@UI_EXT_MGR@@QEAAPEAVUI_EXT@@K@Z
; public: class UI_EXT * __ptr64 __cdecl UI_EXT_MGR::FindExtensionByName(unsigned short const * __ptr64) __ptr64
?FindExtensionByName@UI_EXT_MGR@@QEAAPEAVUI_EXT@@PEBG@Z
; public: int __cdecl BLT_LISTBOX::FindItem(class LBI const & __ptr64)const  __ptr64
?FindItem@BLT_LISTBOX@@QEBAHAEBVLBI@@@Z
; public: int __cdecl OUTLINE_LISTBOX::FindItem(unsigned short const * __ptr64,unsigned short const * __ptr64)const  __ptr64
?FindItem@OUTLINE_LISTBOX@@QEBAHPEBG0@Z
; public: int __cdecl STRING_LIST_CONTROL::FindItem(unsigned short const * __ptr64)const  __ptr64
?FindItem@STRING_LIST_CONTROL@@QEBAHPEBG@Z
; public: int __cdecl STRING_LIST_CONTROL::FindItem(unsigned short const * __ptr64,int)const  __ptr64
?FindItem@STRING_LIST_CONTROL@@QEBAHPEBGH@Z
; public: int __cdecl STRING_LIST_CONTROL::FindItemExact(unsigned short const * __ptr64)const  __ptr64
?FindItemExact@STRING_LIST_CONTROL@@QEBAHPEBG@Z
; public: int __cdecl STRING_LIST_CONTROL::FindItemExact(unsigned short const * __ptr64,int)const  __ptr64
?FindItemExact@STRING_LIST_CONTROL@@QEBAHPEBGH@Z
; public: void __cdecl DEVICE_CONTEXT::FrameRect(struct tagRECT const * __ptr64,struct HBRUSH__ * __ptr64)const  __ptr64
?FrameRect@DEVICE_CONTEXT@@QEBAXPEBUtagRECT@@PEAUHBRUSH__@@@Z
; private: virtual long __cdecl SPIN_SLE_STR::GetAccKey(class NLS_STR * __ptr64) __ptr64
?GetAccKey@SPIN_SLE_STR@@EEAAJPEAVNLS_STR@@@Z
; protected: virtual long __cdecl SPIN_SLT_SEPARATOR::GetAccKey(class NLS_STR * __ptr64) __ptr64
?GetAccKey@SPIN_SLT_SEPARATOR@@MEAAJPEAVNLS_STR@@@Z
; private: long __cdecl MSG_DIALOG_BASE::GetAndSendText(void) __ptr64
?GetAndSendText@MSG_DIALOG_BASE@@AEAAJXZ
; public: unsigned long __cdecl DEVICE_CONTEXT::GetBkColor(void)const  __ptr64
?GetBkColor@DEVICE_CONTEXT@@QEBAKXZ
; public: long __cdecl BROWSER_DOMAIN::GetDomainInfo(class NT_USER_BROWSER_DIALOG * __ptr64,class ADMIN_AUTHORITY const * __ptr64) __ptr64
?GetDomainInfo@BROWSER_DOMAIN@@QEAAJPEAVNT_USER_BROWSER_DIALOG@@PEBVADMIN_AUTHORITY@@@Z
; public: long __cdecl UI_DOMAIN::GetInfo(void) __ptr64
?GetInfo@UI_DOMAIN@@QEAAJXZ
; public: long __cdecl APP_WINDOW::GetPlacement(struct tagWINDOWPLACEMENT * __ptr64)const  __ptr64
?GetPlacement@APP_WINDOW@@QEBAJPEAUtagWINDOWPLACEMENT@@@Z
; public: long __cdecl BROWSER_DOMAIN::GetQualifiedDomainName(class NLS_STR * __ptr64) __ptr64
?GetQualifiedDomainName@BROWSER_DOMAIN@@QEAAJPEAVNLS_STR@@@Z
; public: long __cdecl BROWSER_DOMAIN_LBI_PB::GetQualifiedDomainName(class NLS_STR * __ptr64) __ptr64
?GetQualifiedDomainName@BROWSER_DOMAIN_LBI_PB@@QEAAJPEAVNLS_STR@@@Z
; public: unsigned long __cdecl DEVICE_CONTEXT::GetTextColor(void)const  __ptr64
?GetTextColor@DEVICE_CONTEXT@@QEBAKXZ
; private: int __cdecl DISPLAY_MAP::GetTransColorIndex(unsigned long * __ptr64,int)const  __ptr64
?GetTransColorIndex@DISPLAY_MAP@@AEBAHPEAKH@Z
; protected: long __cdecl NT_USER_BROWSER_DIALOG::GetTrustedDomainList(unsigned short const * __ptr64,class BROWSER_DOMAIN * __ptr64 * __ptr64,class BROWSER_DOMAIN_CB * __ptr64,class ADMIN_AUTHORITY const * __ptr64) __ptr64
?GetTrustedDomainList@NT_USER_BROWSER_DIALOG@@IEAAJPEBGPEAPEAVBROWSER_DOMAIN@@PEAVBROWSER_DOMAIN_CB@@PEBVADMIN_AUTHORITY@@@Z
; public: int __cdecl SET_CONTROL::HandleOnLMouseButtonDown(class LISTBOX * __ptr64,class CUSTOM_CONTROL * __ptr64,class MOUSE_EVENT const & __ptr64) __ptr64
?HandleOnLMouseButtonDown@SET_CONTROL@@QEAAHPEAVLISTBOX@@PEAVCUSTOM_CONTROL@@AEBVMOUSE_EVENT@@@Z
; public: int __cdecl SET_CONTROL::HandleOnLMouseButtonUp(class LISTBOX * __ptr64,class CUSTOM_CONTROL * __ptr64,class MOUSE_EVENT const & __ptr64) __ptr64
?HandleOnLMouseButtonUp@SET_CONTROL@@QEAAHPEAVLISTBOX@@PEAVCUSTOM_CONTROL@@AEBVMOUSE_EVENT@@@Z
; public: int __cdecl SET_CONTROL::HandleOnMouseMove(class LISTBOX * __ptr64,class MOUSE_EVENT const & __ptr64) __ptr64
?HandleOnMouseMove@SET_CONTROL@@QEAAHPEAVLISTBOX@@AEBVMOUSE_EVENT@@@Z
; public: int __cdecl HIER_LBI::HasChildren(void) __ptr64
?HasChildren@HIER_LBI@@QEAAHXZ
; public: int __cdecl WINDOW::HasFocus(void)const  __ptr64
?HasFocus@WINDOW@@QEBAHXZ
; public: static class DISPATCHER * __ptr64 __cdecl ASSOCHWNDDISP::HwndToPdispatch(struct HWND__ * __ptr64)
?HwndToPdispatch@ASSOCHWNDDISP@@SAPEAVDISPATCHER@@PEAUHWND__@@@Z
; public: static class DIALOG_WINDOW * __ptr64 __cdecl ASSOCHWNDPDLG::HwndToPdlg(struct HWND__ * __ptr64)
?HwndToPdlg@ASSOCHWNDPDLG@@SAPEAVDIALOG_WINDOW@@PEAUHWND__@@@Z
; public: static class CLIENT_WINDOW * __ptr64 __cdecl ASSOCHWNDPWND::HwndToPwnd(struct HWND__ * __ptr64)
?HwndToPwnd@ASSOCHWNDPWND@@SAPEAVCLIENT_WINDOW@@PEAUHWND__@@@Z
; private: static class CLIENT_WINDOW * __ptr64 __cdecl CLIENT_WINDOW::HwndToPwnd(struct HWND__ * __ptr64)
?HwndToPwnd@CLIENT_WINDOW@@CAPEAV1@PEAUHWND__@@@Z
; private: static class DIALOG_WINDOW * __ptr64 __cdecl DIALOG_WINDOW::HwndToPwnd(struct HWND__ * __ptr64)
?HwndToPwnd@DIALOG_WINDOW@@CAPEAV1@PEAUHWND__@@@Z
; protected: static class DISPATCHER * __ptr64 __cdecl DISPATCHER::HwndToPwnd(struct HWND__ * __ptr64)
?HwndToPwnd@DISPATCHER@@KAPEAV1@PEAUHWND__@@@Z
; public: static void * __ptr64 __cdecl ASSOCHWNDTHIS::HwndToThis(struct HWND__ * __ptr64)
?HwndToThis@ASSOCHWNDTHIS@@SAPEAXPEAUHWND__@@@Z
; public: int __cdecl BASE_SET_FOCUS_DLG::InRasMode(void)const  __ptr64
?InRasMode@BASE_SET_FOCUS_DLG@@QEBAHXZ
; public: int __cdecl XYPOINT::InRect(class XYRECT const & __ptr64)const  __ptr64
?InRect@XYPOINT@@QEBAHAEBVXYRECT@@@Z
; public: virtual void __cdecl CONTROL_WINDOW::IndicateError(long) __ptr64
?IndicateError@CONTROL_WINDOW@@UEAAXJ@Z
; public: virtual void __cdecl SLE::IndicateError(long) __ptr64
?IndicateError@SLE@@UEAAXJ@Z
; public: class XYRECT & __ptr64 __cdecl XYRECT::Inflate(int,int) __ptr64
?Inflate@XYRECT@@QEAAAEAV1@HH@Z
; public: class XYRECT & __ptr64 __cdecl XYRECT::Inflate(class XYDIMENSION) __ptr64
?Inflate@XYRECT@@QEAAAEAV1@VXYDIMENSION@@@Z
; public: static long __cdecl BASE_ELLIPSIS::Init(void)
?Init@BASE_ELLIPSIS@@SAJXZ
; public: static long __cdecl BLT::Init(struct HINSTANCE__ * __ptr64,unsigned int,unsigned int,unsigned int,unsigned int)
?Init@BLT@@SAJPEAUHINSTANCE__@@IIII@Z
; public: static long __cdecl BLTIMP::Init(void)
?Init@BLTIMP@@SAJXZ
; public: static long __cdecl BLT_MASTER_TIMER::Init(void)
?Init@BLT_MASTER_TIMER@@SAJXZ
; public: static long __cdecl CLIENT_WINDOW::Init(void)
?Init@CLIENT_WINDOW@@SAJXZ
; public: static long __cdecl POPUP::Init(void)
?Init@POPUP@@SAJXZ
; public: long __cdecl SLE_STRLB_GROUP::Init(class STRLIST * __ptr64) __ptr64
?Init@SLE_STRLB_GROUP@@QEAAJPEAVSTRLIST@@@Z
; public: static void __cdecl WIN32_FONT_PICKER::InitCHOOSEFONT(struct tagCHOOSEFONTW * __ptr64,struct tagLOGFONTW * __ptr64,struct HWND__ * __ptr64)
?InitCHOOSEFONT@WIN32_FONT_PICKER@@SAXPEAUtagCHOOSEFONTW@@PEAUtagLOGFONTW@@PEAUHWND__@@@Z
; public: static long __cdecl BLT::InitDLL(void)
?InitDLL@BLT@@SAJXZ
; protected: void __cdecl GET_FNAME_BASE_DLG::InitialOFN(void) __ptr64
?InitialOFN@GET_FNAME_BASE_DLG@@IEAAXXZ
; private: long __cdecl SPIN_SLE_STR::Initialize(long,class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
?Initialize@SPIN_SLE_STR@@AEAAJJPEAVOWNER_WINDOW@@I@Z
; private: long __cdecl SPIN_SLE_STR::Initialize(unsigned short const * __ptr64 * __ptr64 const,class OWNER_WINDOW * __ptr64,unsigned int) __ptr64
?Initialize@SPIN_SLE_STR@@AEAAJQEAPEBGPEAVOWNER_WINDOW@@I@Z
; private: long __cdecl SPIN_SLT_SEPARATOR::Initialize(void) __ptr64
?Initialize@SPIN_SLT_SEPARATOR@@AEAAJXZ
; public: long __cdecl MENU_BASE::Insert(unsigned short const * __ptr64,unsigned int,unsigned int,unsigned int)const  __ptr64
?Insert@MENU_BASE@@QEBAJPEBGIII@Z
; public: long __cdecl MENU_BASE::Insert(unsigned short const * __ptr64,unsigned int,struct HMENU__ * __ptr64,unsigned int)const  __ptr64
?Insert@MENU_BASE@@QEBAJPEBGIPEAUHMENU__@@I@Z
; public: int __cdecl BLT_LISTBOX::InsertItem(int,class LBI * __ptr64) __ptr64
?InsertItem@BLT_LISTBOX@@QEAAHHPEAVLBI@@@Z
; public: int __cdecl STRING_LIST_CONTROL::InsertItem(int,class NLS_STR const & __ptr64) __ptr64
?InsertItem@STRING_LIST_CONTROL@@QEAAHHAEBVNLS_STR@@@Z
; public: int __cdecl STRING_LIST_CONTROL::InsertItem(int,unsigned short const * __ptr64) __ptr64
?InsertItem@STRING_LIST_CONTROL@@QEAAHHPEBG@Z
; protected: int __cdecl LIST_CONTROL::InsertItemData(int,void * __ptr64) __ptr64
?InsertItemData@LIST_CONTROL@@IEAAHHPEAX@Z
; public: long __cdecl NLS_STR::InsertParams(class NLS_STR const & __ptr64) __ptr64
?InsertParams@NLS_STR@@QEAAJAEBV1@@Z
; public: long __cdecl MENU_BASE::InsertSeparator(unsigned int,unsigned int)const  __ptr64
?InsertSeparator@MENU_BASE@@QEBAJII@Z
; public: long __cdecl BLT_MASTER_TIMER::InsertTimer(class TIMER_BASE * __ptr64) __ptr64
?InsertTimer@BLT_MASTER_TIMER@@QEAAJPEAVTIMER_BASE@@@Z
; public: void __cdecl WINDOW::Invalidate(class XYRECT const & __ptr64) __ptr64
?Invalidate@WINDOW@@QEAAXAEBVXYRECT@@@Z
; public: void __cdecl WINDOW::Invalidate(int) __ptr64
?Invalidate@WINDOW@@QEAAXH@Z
; private: void __cdecl LOGON_HOURS_CONTROL::InvalidateButton(int) __ptr64
?InvalidateButton@LOGON_HOURS_CONTROL@@AEAAXH@Z
; public: void __cdecl LISTBOX::InvalidateItem(int,int) __ptr64
?InvalidateItem@LISTBOX@@QEAAXHH@Z
; private: void __cdecl H_SPLITTER_BAR::InvertDragBar(class XYPOINT const & __ptr64) __ptr64
?InvertDragBar@H_SPLITTER_BAR@@AEAAXAEBVXYPOINT@@@Z
; public: void __cdecl DEVICE_CONTEXT::InvertRect(struct tagRECT const * __ptr64)const  __ptr64
?InvertRect@DEVICE_CONTEXT@@QEBAXPEBUtagRECT@@@Z
; public: int __cdecl INTL_PROFILE::Is24Hour(void)const  __ptr64
?Is24Hour@INTL_PROFILE@@QEBAHXZ
; public: int __cdecl ACTIVATION_EVENT::IsActivating(void)const  __ptr64
?IsActivating@ACTIVATION_EVENT@@QEBAHXZ
; public: int __cdecl SPIN_GROUP::IsActive(void)const  __ptr64
?IsActive@SPIN_GROUP@@QEBAHXZ
; public: int __cdecl ASSOCHCFILE::IsAssociatedHC(unsigned long)const  __ptr64
?IsAssociatedHC@ASSOCHCFILE@@QEBAHK@Z
; protected: int __cdecl HEAP_BASE::IsAutoReadjusting(void)const  __ptr64
?IsAutoReadjusting@HEAP_BASE@@IEBAHXZ
; protected: int __cdecl NT_USER_BROWSER_DIALOG::IsBrowsingEnabled(void)const  __ptr64
?IsBrowsingEnabled@NT_USER_BROWSER_DIALOG@@IEBAHXZ
; private: int __cdecl LOGON_HOURS_CONTROL::IsButtonACell(int)const  __ptr64
?IsButtonACell@LOGON_HOURS_CONTROL@@AEBAHH@Z
; public: int __cdecl MENUITEM::IsChecked(void)const  __ptr64
?IsChecked@MENUITEM@@QEBAHXZ
; public: int __cdecl WINDOW::IsChild(void)const  __ptr64
?IsChild@WINDOW@@QEBAHXZ
; public: static int __cdecl WINDOW::IsClientGeneratedMessage(void)
?IsClientGeneratedMessage@WINDOW@@SAHXZ
; public: int __cdecl LIST_CONTROL::IsCombo(void)const  __ptr64
?IsCombo@LIST_CONTROL@@QEBAHXZ
; public: int __cdecl PROMPT_AND_CONNECT::IsConnected(void) __ptr64
?IsConnected@PROMPT_AND_CONNECT@@QEAAHXZ
; private: int __cdecl BLT_DATE_SPIN_GROUP::IsConstructionFail(class CONTROL_WINDOW * __ptr64) __ptr64
?IsConstructionFail@BLT_DATE_SPIN_GROUP@@AEAAHPEAVCONTROL_WINDOW@@@Z
; private: int __cdecl BLT_TIME_SPIN_GROUP::IsConstructionFail(class CONTROL_WINDOW * __ptr64) __ptr64
?IsConstructionFail@BLT_TIME_SPIN_GROUP@@AEAAHPEAVCONTROL_WINDOW@@@Z
; public: int __cdecl INTL_PROFILE::IsDayLZero(void)const  __ptr64
?IsDayLZero@INTL_PROFILE@@QEBAHXZ
; private: virtual int __cdecl HIER_LBI::IsDestroyable(void) __ptr64
?IsDestroyable@HIER_LBI@@EEAAHXZ
; protected: virtual int __cdecl LBI::IsDestroyable(void) __ptr64
?IsDestroyable@LBI@@MEAAHXZ
; protected: int __cdecl NT_USER_BROWSER_DIALOG::IsDomainComboDropped(void)const  __ptr64
?IsDomainComboDropped@NT_USER_BROWSER_DIALOG@@IEBAHXZ
; public: int __cdecl COMBOBOX::IsDropDown(void)const  __ptr64
?IsDropDown@COMBOBOX@@QEBAHXZ
; public: int __cdecl COMBOBOX::IsDropDownList(void)const  __ptr64
?IsDropDownList@COMBOBOX@@QEBAHXZ
; public: int __cdecl BLT_COMBOBOX::IsDropped(void)const  __ptr64
?IsDropped@BLT_COMBOBOX@@QEBAHXZ
; public: int __cdecl XYRECT::IsEmpty(void)const  __ptr64
?IsEmpty@XYRECT@@QEBAHXZ
; public: int __cdecl MENUITEM::IsEnabled(void)const  __ptr64
?IsEnabled@MENUITEM@@QEBAHXZ
; public: int __cdecl TIMER_BASE::IsEnabled(void)const  __ptr64
?IsEnabled@TIMER_BASE@@QEBAHXZ
; public: int __cdecl WINDOW::IsEnabled(void)const  __ptr64
?IsEnabled@WINDOW@@QEBAHXZ
; protected: int __cdecl BASE_SET_FOCUS_DLG::IsExpanded(void)const  __ptr64
?IsExpanded@BASE_SET_FOCUS_DLG@@IEBAHXZ
; public: int __cdecl OLLB_ENTRY::IsExpanded(void)const  __ptr64
?IsExpanded@OLLB_ENTRY@@QEBAHXZ
; public: int __cdecl AUDIT_CHECKBOXES::IsFailedChecked(void) __ptr64
?IsFailedChecked@AUDIT_CHECKBOXES@@QEAAHXZ
; protected: int __cdecl CANCEL_TASK_DIALOG::IsFinished(void)const  __ptr64
?IsFinished@CANCEL_TASK_DIALOG@@IEBAHXZ
; public: int __cdecl GET_FNAME_BASE_DLG::IsHelpActive(void) __ptr64
?IsHelpActive@GET_FNAME_BASE_DLG@@QEAAHXZ
; public: int __cdecl INTL_PROFILE::IsHourLZero(void)const  __ptr64
?IsHourLZero@INTL_PROFILE@@QEBAHXZ
; protected: int __cdecl CANCEL_TASK_DIALOG::IsInTimer(void)const  __ptr64
?IsInTimer@CANCEL_TASK_DIALOG@@IEBAHXZ
; public: int __cdecl BROWSER_DOMAIN::IsInitialized(void)const  __ptr64
?IsInitialized@BROWSER_DOMAIN@@QEBAHXZ
; public: virtual int __cdecl USER_LBI_CACHE::IsItemAvailable(int) __ptr64
?IsItemAvailable@USER_LBI_CACHE@@UEAAHH@Z
; public: int __cdecl LIST_CONTROL::IsItemSelected(unsigned int)const  __ptr64
?IsItemSelected@LIST_CONTROL@@QEBAHI@Z
; public: int __cdecl RADIO_GROUP::IsMember(unsigned int) __ptr64
?IsMember@RADIO_GROUP@@QEAAHI@Z
; public: int __cdecl CLIENT_WINDOW::IsMinimized(void)const  __ptr64
?IsMinimized@CLIENT_WINDOW@@QEBAHXZ
; public: int __cdecl SPIN_GROUP::IsModified(void)const  __ptr64
?IsModified@SPIN_GROUP@@QEBAHXZ
; public: int __cdecl INTL_PROFILE::IsMonthLZero(void)const  __ptr64
?IsMonthLZero@INTL_PROFILE@@QEBAHXZ
; public: int __cdecl LIST_CONTROL::IsMultSel(void)const  __ptr64
?IsMultSel@LIST_CONTROL@@QEBAHXZ
; private: int __cdecl SET_CONTROL::IsOnDragStart(class LISTBOX * __ptr64,class LISTBOX * __ptr64,class XYPOINT const & __ptr64)const  __ptr64
?IsOnDragStart@SET_CONTROL@@AEBAHPEAVLISTBOX@@0AEBVXYPOINT@@@Z
; private: int __cdecl SET_CONTROL::IsOnSelectedItem(class LISTBOX * __ptr64,class LISTBOX * __ptr64,class XYPOINT const & __ptr64)const  __ptr64
?IsOnSelectedItem@SET_CONTROL@@AEBAHPEAVLISTBOX@@0AEBVXYPOINT@@@Z
; private: int __cdecl SET_CONTROL::IsOverTarget(class LISTBOX * __ptr64,class LISTBOX * __ptr64,class XYPOINT const & __ptr64)const  __ptr64
?IsOverTarget@SET_CONTROL@@AEBAHPEAVLISTBOX@@0AEBVXYPOINT@@@Z
; private: int __cdecl HIER_LBI::IsParent(class HIER_LBI * __ptr64) __ptr64
?IsParent@HIER_LBI@@AEAAHPEAV1@@Z
; public: int __cdecl MENU_BASE::IsPopup(int)const  __ptr64
?IsPopup@MENU_BASE@@QEBAHH@Z
; public: int __cdecl MASK_MAP::IsPresent(class BITFIELD * __ptr64) __ptr64
?IsPresent@MASK_MAP@@QEAAHPEAVBITFIELD@@@Z
; protected: virtual int __cdecl DIALOG_WINDOW::IsPumpFinished(void) __ptr64
?IsPumpFinished@DIALOG_WINDOW@@MEAAHXZ
; protected: virtual int __cdecl HAS_MESSAGE_PUMP::IsPumpFinished(void) __ptr64
?IsPumpFinished@HAS_MESSAGE_PUMP@@MEAAHXZ
; public: int __cdecl LISTBOX::IsReadOnly(void)const  __ptr64
?IsReadOnly@LISTBOX@@QEBAHXZ
; protected: int __cdecl HEAP_BASE::IsRoot(int)const  __ptr64
?IsRoot@HEAP_BASE@@IEBAHH@Z
; public: int __cdecl WIN32_THREAD::IsRunnable(void)const  __ptr64
?IsRunnable@WIN32_THREAD@@QEBAHXZ
; protected: int __cdecl USER_BROWSER_LB::IsSelectionExpandableGroup(class USER_BROWSER_LBI const * __ptr64,int)const  __ptr64
?IsSelectionExpandableGroup@USER_BROWSER_LB@@IEBAHPEBVUSER_BROWSER_LBI@@H@Z
; public: int __cdecl USER_BROWSER_LB::IsSelectionExpandableGroup(void)const  __ptr64
?IsSelectionExpandableGroup@USER_BROWSER_LB@@QEBAHXZ
; public: int __cdecl MENU_BASE::IsSeparator(int)const  __ptr64
?IsSeparator@MENU_BASE@@QEBAHH@Z
; protected: int __cdecl NT_USER_BROWSER_DIALOG::IsShowUsersButtonUsed(void)const  __ptr64
?IsShowUsersButtonUsed@NT_USER_BROWSER_DIALOG@@IEBAHXZ
; public: int __cdecl COMBOBOX::IsSimple(void)const  __ptr64
?IsSimple@COMBOBOX@@QEBAHXZ
; public: int __cdecl ACCOUNT_NAMES_MLE::IsSingleSelect(void)const  __ptr64
?IsSingleSelect@ACCOUNT_NAMES_MLE@@QEBAHXZ
; public: int __cdecl NT_USER_BROWSER_DIALOG::IsSingleSelection(void)const  __ptr64
?IsSingleSelection@NT_USER_BROWSER_DIALOG@@QEBAHXZ
; public: virtual int __cdecl CHANGEABLE_SPIN_ITEM::IsStatic(void)const  __ptr64
?IsStatic@CHANGEABLE_SPIN_ITEM@@UEBAHXZ
; public: virtual int __cdecl STATIC_SPIN_ITEM::IsStatic(void)const  __ptr64
?IsStatic@STATIC_SPIN_ITEM@@UEBAHXZ
; public: int __cdecl AUDIT_CHECKBOXES::IsSuccessChecked(void) __ptr64
?IsSuccessChecked@AUDIT_CHECKBOXES@@QEAAHXZ
; public: static int __cdecl APPLICATION::IsSystemInitialized(void)
?IsSystemInitialized@APPLICATION@@SAHXZ
; public: int __cdecl BROWSER_DOMAIN::IsTargetDomain(void)const  __ptr64
?IsTargetDomain@BROWSER_DOMAIN@@QEBAHXZ
; public: int __cdecl BROWSER_DOMAIN_LBI::IsTargetDomain(void)const  __ptr64
?IsTargetDomain@BROWSER_DOMAIN_LBI@@QEBAHXZ
; public: int __cdecl BROWSER_DOMAIN_LBI_PB::IsTargetDomain(void)const  __ptr64
?IsTargetDomain@BROWSER_DOMAIN_LBI_PB@@QEBAHXZ
; public: int __cdecl INTL_PROFILE::IsTimePrefix(void)const  __ptr64
?IsTimePrefix@INTL_PROFILE@@QEBAHXZ
; public: int __cdecl COMBOBOX::IsUserEdittable(void)const  __ptr64
?IsUserEdittable@COMBOBOX@@QEBAHXZ
; public: int __cdecl BLT_DATE_SPIN_GROUP::IsValid(void) __ptr64
?IsValid@BLT_DATE_SPIN_GROUP@@QEAAHXZ
; public: int __cdecl BLT_TIME_SPIN_GROUP::IsValid(void) __ptr64
?IsValid@BLT_TIME_SPIN_GROUP@@QEAAHXZ
; protected: virtual int __cdecl DIALOG_WINDOW::IsValid(void) __ptr64
?IsValid@DIALOG_WINDOW@@MEAAHXZ
; protected: virtual int __cdecl SPIN_SLE_NUM_VALID::IsValid(void) __ptr64
?IsValid@SPIN_SLE_NUM_VALID@@MEAAHXZ
; protected: int __cdecl SPIN_GROUP::IsValidField(void) __ptr64
?IsValidField@SPIN_GROUP@@IEAAHXZ
; protected: int __cdecl BASE_ELLIPSIS::IsValidStyle(enum ELLIPSIS_STYLE)const  __ptr64
?IsValidStyle@BASE_ELLIPSIS@@IEBAHW4ELLIPSIS_STYLE@@@Z
; protected: int __cdecl ACCOUNT_NAMES_MLE::IsWellKnownAccount(class NLS_STR const & __ptr64) __ptr64
?IsWellKnownAccount@ACCOUNT_NAMES_MLE@@IEAAHAEBVNLS_STR@@@Z
; public: int __cdecl BROWSER_DOMAIN::IsWinNTMachine(void)const  __ptr64
?IsWinNTMachine@BROWSER_DOMAIN@@QEBAHXZ
; protected: int __cdecl H_SPLITTER_BAR::IsWithinHitZone(class XYPOINT const & __ptr64) __ptr64
?IsWithinHitZone@H_SPLITTER_BAR@@IEAAHAEBVXYPOINT@@@Z
; private: int __cdecl SET_CONTROL::IsWithinHitZone(class LISTBOX * __ptr64,class LISTBOX * __ptr64,class XYPOINT const & __ptr64)const  __ptr64
?IsWithinHitZone@SET_CONTROL@@AEBAHPEAVLISTBOX@@0AEBVXYPOINT@@@Z
; public: int __cdecl INTL_PROFILE::IsYrCentury(void)const  __ptr64
?IsYrCentury@INTL_PROFILE@@QEBAHXZ
; public: static int __cdecl MENUITEM::ItemExists(struct HMENU__ * __ptr64,unsigned int)
?ItemExists@MENUITEM@@SAHPEAUHMENU__@@I@Z
; public: static int __cdecl MENUITEM::ItemExists(class APP_WINDOW * __ptr64,unsigned int)
?ItemExists@MENUITEM@@SAHPEAVAPP_WINDOW@@I@Z
; public: int __cdecl SPIN_GROUP::JumpNextField(void) __ptr64
?JumpNextField@SPIN_GROUP@@QEAAHXZ
; public: int __cdecl SPIN_GROUP::JumpPrevField(void) __ptr64
?JumpPrevField@SPIN_GROUP@@QEAAHXZ
; private: void __cdecl DIALOG_WINDOW::LaunchHelp(void) __ptr64
?LaunchHelp@DIALOG_WINDOW@@AEAAXXZ
; public: static void __cdecl BLTIMP::LeaveBLTCritSect(void)
?LeaveBLTCritSect@BLTIMP@@SAXXZ
; public: static void __cdecl BLTIMP::LeaveResourceCritSect(void)
?LeaveResourceCritSect@BLTIMP@@SAXXZ
; public: void __cdecl DEVICE_CONTEXT::LineTo(int,int)const  __ptr64
?LineTo@DEVICE_CONTEXT@@QEBAXHH@Z
; public: static struct HICON__ * __ptr64 __cdecl CURSOR::Load(class IDRESOURCE const & __ptr64)
?Load@CURSOR@@SAPEAUHICON__@@AEBVIDRESOURCE@@@Z
; public: long __cdecl NLS_STR::Load(long) __ptr64
?Load@NLS_STR@@QEAAJJ@Z
; public: virtual unsigned int __cdecl UI_EXT_MGR::LoadExtensions(void) __ptr64
?LoadExtensions@UI_EXT_MGR@@UEAAIXZ
; private: long __cdecl LOGON_HOURS_CONTROL::LoadLabels(long) __ptr64
?LoadLabels@LOGON_HOURS_CONTROL@@AEAAJJ@Z
; private: class NLS_STR * __ptr64 __cdecl POPUP::LoadMessage(long,int) __ptr64
?LoadMessage@POPUP@@AEAAPEAVNLS_STR@@JH@Z
; public: static struct HICON__ * __ptr64 __cdecl CURSOR::LoadSystem(class IDRESOURCE const & __ptr64)
?LoadSystem@CURSOR@@SAPEAUHICON__@@AEBVIDRESOURCE@@@Z
; public: long __cdecl NLS_STR::LoadSystem(long) __ptr64
?LoadSystem@NLS_STR@@QEAAJJ@Z
; protected: virtual void __cdecl USER_LBI_CACHE::LockCache(void) __ptr64
?LockCache@USER_LBI_CACHE@@MEAAXXZ
; void __cdecl MLTextPaint(struct HDC__ * __ptr64,unsigned short const * __ptr64,struct tagRECT const * __ptr64)
?MLTextPaint@@YAXPEAUHDC__@@PEBGPEBUtagRECT@@@Z
; protected: virtual long __cdecl DOMAIN_FILL_THREAD::Main(void) __ptr64
?Main@DOMAIN_FILL_THREAD@@MEAAJXZ
; protected: virtual long __cdecl FOCUSDLG_DATA_THREAD::Main(void) __ptr64
?Main@FOCUSDLG_DATA_THREAD@@MEAAJXZ
; protected: virtual long __cdecl WIN32_THREAD::Main(void) __ptr64
?Main@WIN32_THREAD@@MEAAJXZ
; public: void __cdecl PUSH_BUTTON::MakeDefault(void) __ptr64
?MakeDefault@PUSH_BUTTON@@QEAAXXZ
; private: static int __cdecl POPUP::MapButton(unsigned int)
?MapButton@POPUP@@CAHI@Z
; public: static long __cdecl BLT::MapLastError(long)
?MapLastError@BLT@@SAJJ@Z
; public: static long __cdecl POPUP::MapMessage(long)
?MapMessage@POPUP@@SAJJ@Z
; protected: virtual int __cdecl APP_WINDOW::MayRestore(void) __ptr64
?MayRestore@APP_WINDOW@@MEAAHXZ
; protected: virtual int __cdecl CANCEL_TASK_DIALOG::MayRun(void) __ptr64
?MayRun@CANCEL_TASK_DIALOG@@MEAAHXZ
; protected: virtual int __cdecl DIALOG_WINDOW::MayRun(void) __ptr64
?MayRun@DIALOG_WINDOW@@MEAAHXZ
; protected: virtual int __cdecl APP_WINDOW::MayShutdown(void) __ptr64
?MayShutdown@APP_WINDOW@@MEAAHXZ
; public: virtual void __cdecl UI_MENU_EXT_MGR::MenuInitExtensions(void) __ptr64
?MenuInitExtensions@UI_MENU_EXT_MGR@@UEAAXXZ
; public: long __cdecl MENU_BASE::Modify(unsigned short const * __ptr64,unsigned int,unsigned int,unsigned int)const  __ptr64
?Modify@MENU_BASE@@QEBAJPEBGIII@Z
; public: long __cdecl MENU_BASE::Modify(unsigned short const * __ptr64,unsigned int,struct HMENU__ * __ptr64,unsigned int)const  __ptr64
?Modify@MENU_BASE@@QEBAJPEBGIPEAUHMENU__@@I@Z
; private: void __cdecl LOGON_HOURS_CONTROL::MoveFocusDown(void) __ptr64
?MoveFocusDown@LOGON_HOURS_CONTROL@@AEAAXXZ
; private: void __cdecl LOGON_HOURS_CONTROL::MoveFocusLeft(void) __ptr64
?MoveFocusLeft@LOGON_HOURS_CONTROL@@AEAAXXZ
; private: void __cdecl LOGON_HOURS_CONTROL::MoveFocusRight(void) __ptr64
?MoveFocusRight@LOGON_HOURS_CONTROL@@AEAAXXZ
; private: void __cdecl LOGON_HOURS_CONTROL::MoveFocusTo(int) __ptr64
?MoveFocusTo@LOGON_HOURS_CONTROL@@AEAAXH@Z
; private: void __cdecl LOGON_HOURS_CONTROL::MoveFocusUp(void) __ptr64
?MoveFocusUp@LOGON_HOURS_CONTROL@@AEAAXXZ
; protected: virtual long __cdecl BLT_SET_CONTROL::MoveItems(class LISTBOX * __ptr64,class LISTBOX * __ptr64) __ptr64
?MoveItems@BLT_SET_CONTROL@@MEAAJPEAVLISTBOX@@0@Z
; public: void __cdecl DEVICE_CONTEXT::MoveTo(int,int)const  __ptr64
?MoveTo@DEVICE_CONTEXT@@QEBAXHH@Z
; private: static int __cdecl MSGPOPUP_DIALOG::Msg2HC(long,unsigned long * __ptr64)
?Msg2HC@MSGPOPUP_DIALOG@@CAHJPEAK@Z
; int __cdecl MsgPopup(class OWNINGWND const & __ptr64,long,long,enum MSG_SEVERITY,unsigned long,unsigned int,class NLS_STR * __ptr64 * __ptr64 const,unsigned int)
?MsgPopup@@YAHAEBVOWNINGWND@@JJW4MSG_SEVERITY@@KIQEAPEAVNLS_STR@@I@Z
; int __cdecl MsgPopup(class OWNINGWND const & __ptr64,long,enum MSG_SEVERITY)
?MsgPopup@@YAHAEBVOWNINGWND@@JW4MSG_SEVERITY@@@Z
; int __cdecl MsgPopup(class OWNINGWND const & __ptr64,long,enum MSG_SEVERITY,unsigned int,unsigned int)
?MsgPopup@@YAHAEBVOWNINGWND@@JW4MSG_SEVERITY@@II@Z
; int __cdecl MsgPopup(class OWNINGWND const & __ptr64,long,enum MSG_SEVERITY,unsigned int,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned int)
?MsgPopup@@YAHAEBVOWNINGWND@@JW4MSG_SEVERITY@@IPEBG2I@Z
; int __cdecl MsgPopup(class OWNINGWND const & __ptr64,long,enum MSG_SEVERITY,unsigned int,unsigned short const * __ptr64,unsigned int)
?MsgPopup@@YAHAEBVOWNINGWND@@JW4MSG_SEVERITY@@IPEBGI@Z
; int __cdecl MsgPopup(class OWNINGWND const & __ptr64,long,enum MSG_SEVERITY,unsigned long,unsigned int,class NLS_STR * __ptr64 * __ptr64 const,unsigned int)
?MsgPopup@@YAHAEBVOWNINGWND@@JW4MSG_SEVERITY@@KIQEAPEAVNLS_STR@@I@Z
; public: long __cdecl BROWSER_SUBJECT_ITER::Next(class BROWSER_SUBJECT * __ptr64 * __ptr64) __ptr64
?Next@BROWSER_SUBJECT_ITER@@QEAAJPEAPEAVBROWSER_SUBJECT@@@Z
; public: class BROWSE_DOMAIN_INFO const * __ptr64 __cdecl BROWSE_DOMAIN_ENUM::Next(void) __ptr64
?Next@BROWSE_DOMAIN_ENUM@@QEAAPEBVBROWSE_DOMAIN_INFO@@XZ
; public: class CONTROL_WINDOW * __ptr64 __cdecl ITER_CTRL::Next(void) __ptr64
?Next@ITER_CTRL@@QEAAPEAVCONTROL_WINDOW@@XZ
; public: class SPIN_ITEM * __ptr64 __cdecl ITER_DL_SPIN_ITEM::Next(void) __ptr64
?Next@ITER_DL_SPIN_ITEM@@QEAAPEAVSPIN_ITEM@@XZ
; public: class ASSOCHCFILE * __ptr64 __cdecl ITER_SL_ASSOCHCFILE::Next(void) __ptr64
?Next@ITER_SL_ASSOCHCFILE@@QEAAPEAVASSOCHCFILE@@XZ
; public: class BROWSE_DOMAIN_INFO * __ptr64 __cdecl ITER_SL_BROWSE_DOMAIN_INFO::Next(void) __ptr64
?Next@ITER_SL_BROWSE_DOMAIN_INFO@@QEAAPEAVBROWSE_DOMAIN_INFO@@XZ
; public: struct CLIENTDATA * __ptr64 __cdecl ITER_SL_CLIENTDATA::Next(void) __ptr64
?Next@ITER_SL_CLIENTDATA@@QEAAPEAUCLIENTDATA@@XZ
; public: class NLS_STR * __ptr64 __cdecl ITER_SL_NLS_STR::Next(void) __ptr64
?Next@ITER_SL_NLS_STR@@QEAAPEAVNLS_STR@@XZ
; public: class STRING_BITSET_PAIR * __ptr64 __cdecl ITER_SL_STRING_BITSET_PAIR::Next(void) __ptr64
?Next@ITER_SL_STRING_BITSET_PAIR@@QEAAPEAVSTRING_BITSET_PAIR@@XZ
; public: class TIMER_BASE * __ptr64 __cdecl ITER_SL_TIMER_BASE::Next(void) __ptr64
?Next@ITER_SL_TIMER_BASE@@QEAAPEAVTIMER_BASE@@XZ
; public: class UI_EXT * __ptr64 __cdecl ITER_SL_UI_EXT::Next(void) __ptr64
?Next@ITER_SL_UI_EXT@@QEAAPEAVUI_EXT@@XZ
; public: class USER_BROWSER_LBI * __ptr64 __cdecl ITER_SL_USER_BROWSER_LBI::Next(void) __ptr64
?Next@ITER_SL_USER_BROWSER_LBI@@QEAAPEAVUSER_BROWSER_LBI@@XZ
; public: class SPIN_ITEM * __ptr64 __cdecl RITER_DL_SPIN_ITEM::Next(void) __ptr64
?Next@RITER_DL_SPIN_ITEM@@QEAAPEAVSPIN_ITEM@@XZ
; public: int __cdecl STLBITEM::NextState(void) __ptr64
?NextState@STLBITEM@@QEAAHXZ
; public: class TIMER_BASE * __ptr64 __cdecl BLT_MASTER_TIMER::NextTimer(void) __ptr64
?NextTimer@BLT_MASTER_TIMER@@QEAAPEAVTIMER_BASE@@XZ
; public: long __cdecl CONTROL_WINDOW::NotifyGroups(class CONTROL_EVENT const & __ptr64) __ptr64
?NotifyGroups@CONTROL_WINDOW@@QEAAJAEBVCONTROL_EVENT@@@Z
; public: class XYRECT & __ptr64 __cdecl XYRECT::Offset(int,int) __ptr64
?Offset@XYRECT@@QEAAAEAV1@HH@Z
; public: class XYRECT & __ptr64 __cdecl XYRECT::Offset(class XYDIMENSION) __ptr64
?Offset@XYRECT@@QEAAAEAV1@VXYDIMENSION@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnActivation(class ACTIVATION_EVENT const & __ptr64) __ptr64
?OnActivation@CLIENT_WINDOW@@MEAAHAEBVACTIVATION_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnActivation(class ACTIVATION_EVENT const & __ptr64) __ptr64
?OnActivation@DISPATCHER@@MEAAHAEBVACTIVATION_EVENT@@@Z
; protected: long __cdecl NT_USER_BROWSER_DIALOG::OnAdd(void) __ptr64
?OnAdd@NT_USER_BROWSER_DIALOG@@IEAAJXZ
; protected: long __cdecl SLE_STRLB_GROUP::OnAdd(void) __ptr64
?OnAdd@SLE_STRLB_GROUP@@IEAAJXZ
; protected: int __cdecl OWNER_WINDOW::OnCDMessages(unsigned int,unsigned __int64,__int64) __ptr64
?OnCDMessages@OWNER_WINDOW@@IEAAHI_K_J@Z
; protected: virtual int __cdecl DIALOG_WINDOW::OnCancel(void) __ptr64
?OnCancel@DIALOG_WINDOW@@MEAAHXZ
; protected: virtual int __cdecl MSGPOPUP_DIALOG::OnCancel(void) __ptr64
?OnCancel@MSGPOPUP_DIALOG@@MEAAHXZ
; protected: virtual int __cdecl CLIENT_WINDOW::OnChange(class CONTROL_EVENT const & __ptr64) __ptr64
?OnChange@CLIENT_WINDOW@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnChar(class CHAR_EVENT const & __ptr64) __ptr64
?OnChar@CLIENT_WINDOW@@MEAAHAEBVCHAR_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnChar(class CHAR_EVENT const & __ptr64) __ptr64
?OnChar@DISPATCHER@@MEAAHAEBVCHAR_EVENT@@@Z
; protected: virtual int __cdecl SPIN_ITEM::OnChar(class CHAR_EVENT const & __ptr64) __ptr64
?OnChar@SPIN_ITEM@@MEAAHAEBVCHAR_EVENT@@@Z
; protected: virtual int __cdecl SPIN_SLE_NUM::OnChar(class CHAR_EVENT const & __ptr64) __ptr64
?OnChar@SPIN_SLE_NUM@@MEAAHAEBVCHAR_EVENT@@@Z
; protected: virtual int __cdecl SPIN_SLE_STR::OnChar(class CHAR_EVENT const & __ptr64) __ptr64
?OnChar@SPIN_SLE_STR@@MEAAHAEBVCHAR_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnClick(class CONTROL_EVENT const & __ptr64) __ptr64
?OnClick@CLIENT_WINDOW@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl APP_WINDOW::OnCloseReq(void) __ptr64
?OnCloseReq@APP_WINDOW@@MEAAHXZ
; protected: virtual int __cdecl CLIENT_WINDOW::OnCloseReq(void) __ptr64
?OnCloseReq@CLIENT_WINDOW@@MEAAHXZ
; protected: virtual int __cdecl DISPATCHER::OnCloseReq(void) __ptr64
?OnCloseReq@DISPATCHER@@MEAAHXZ
; protected: virtual int __cdecl BASE_SET_FOCUS_DLG::OnCommand(class CONTROL_EVENT const & __ptr64) __ptr64
?OnCommand@BASE_SET_FOCUS_DLG@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnCommand(class CONTROL_EVENT const & __ptr64) __ptr64
?OnCommand@CLIENT_WINDOW@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl DIALOG_WINDOW::OnCommand(class CONTROL_EVENT const & __ptr64) __ptr64
?OnCommand@DIALOG_WINDOW@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnCommand(class CONTROL_EVENT const & __ptr64) __ptr64
?OnCommand@DISPATCHER@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl EXPANDABLE_DIALOG::OnCommand(class CONTROL_EVENT const & __ptr64) __ptr64
?OnCommand@EXPANDABLE_DIALOG@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl MSGPOPUP_DIALOG::OnCommand(class CONTROL_EVENT const & __ptr64) __ptr64
?OnCommand@MSGPOPUP_DIALOG@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl NT_FIND_ACCOUNT_DIALOG::OnCommand(class CONTROL_EVENT const & __ptr64) __ptr64
?OnCommand@NT_FIND_ACCOUNT_DIALOG@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl NT_GROUP_BROWSER_DIALOG::OnCommand(class CONTROL_EVENT const & __ptr64) __ptr64
?OnCommand@NT_GROUP_BROWSER_DIALOG@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl NT_LOCALGROUP_BROWSER_DIALOG::OnCommand(class CONTROL_EVENT const & __ptr64) __ptr64
?OnCommand@NT_LOCALGROUP_BROWSER_DIALOG@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl NT_USER_BROWSER_DIALOG::OnCommand(class CONTROL_EVENT const & __ptr64) __ptr64
?OnCommand@NT_USER_BROWSER_DIALOG@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl OPEN_DIALOG_BASE::OnCommand(class CONTROL_EVENT const & __ptr64) __ptr64
?OnCommand@OPEN_DIALOG_BASE@@MEAAHAEBVCONTROL_EVENT@@@Z
; public: static int __cdecl LBI::OnCompareItem(unsigned __int64,__int64)
?OnCompareItem@LBI@@SAH_K_J@Z
; protected: virtual void __cdecl DIALOG_WINDOW::OnControlError(unsigned int,long) __ptr64
?OnControlError@DIALOG_WINDOW@@MEAAXIJ@Z
; public: virtual struct HBRUSH__ * __ptr64 __cdecl BLT_BACKGROUND_EDIT::OnCtlColor(struct HDC__ * __ptr64,struct HWND__ * __ptr64,unsigned int * __ptr64) __ptr64
?OnCtlColor@BLT_BACKGROUND_EDIT@@UEAAPEAUHBRUSH__@@PEAUHDC__@@PEAUHWND__@@PEAI@Z
; public: virtual struct HBRUSH__ * __ptr64 __cdecl CONTROL_WINDOW::OnCtlColor(struct HDC__ * __ptr64,struct HWND__ * __ptr64,unsigned int * __ptr64) __ptr64
?OnCtlColor@CONTROL_WINDOW@@UEAAPEAUHBRUSH__@@PEAUHDC__@@PEAUHWND__@@PEAI@Z
; protected: virtual struct HBRUSH__ * __ptr64 __cdecl DIALOG_WINDOW::OnCtlColor(struct HDC__ * __ptr64,struct HWND__ * __ptr64,unsigned int * __ptr64) __ptr64
?OnCtlColor@DIALOG_WINDOW@@MEAAPEAUHBRUSH__@@PEAUHDC__@@PEAUHWND__@@PEAI@Z
; public: virtual struct HBRUSH__ * __ptr64 __cdecl SPIN_SLT_SEPARATOR::OnCtlColor(struct HDC__ * __ptr64,struct HWND__ * __ptr64,unsigned int * __ptr64) __ptr64
?OnCtlColor@SPIN_SLT_SEPARATOR@@UEAAPEAUHBRUSH__@@PEAUHDC__@@PEAUHWND__@@PEAI@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnDblClick(class CONTROL_EVENT const & __ptr64) __ptr64
?OnDblClick@CLIENT_WINDOW@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnDeactivation(class ACTIVATION_EVENT const & __ptr64) __ptr64
?OnDeactivation@CLIENT_WINDOW@@MEAAHAEBVACTIVATION_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnDeactivation(class ACTIVATION_EVENT const & __ptr64) __ptr64
?OnDeactivation@DISPATCHER@@MEAAHAEBVACTIVATION_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnDefocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnDefocus@CLIENT_WINDOW@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnDefocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnDefocus@DISPATCHER@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl FOCUS_CHECKBOX::OnDefocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnDefocus@FOCUS_CHECKBOX@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl LOGON_HOURS_CONTROL::OnDefocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnDefocus@LOGON_HOURS_CONTROL@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl SPIN_SLE_NUM::OnDefocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnDefocus@SPIN_SLE_NUM@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl SPIN_SLE_NUM_VALID::OnDefocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnDefocus@SPIN_SLE_NUM_VALID@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual void __cdecl LAZY_LISTBOX::OnDeleteItem(class LBI * __ptr64) __ptr64
?OnDeleteItem@LAZY_LISTBOX@@MEAAXPEAVLBI@@@Z
; public: static void __cdecl LBI::OnDeleteItem(unsigned __int64,__int64)
?OnDeleteItem@LBI@@SAX_K_J@Z
; protected: virtual void __cdecl USER_BROWSER_LB::OnDeleteItem(class LBI * __ptr64) __ptr64
?OnDeleteItem@USER_BROWSER_LB@@MEAAXPEAVLBI@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnDestroy(void) __ptr64
?OnDestroy@CLIENT_WINDOW@@MEAAHXZ
; protected: virtual int __cdecl DISPATCHER::OnDestroy(void) __ptr64
?OnDestroy@DISPATCHER@@MEAAHXZ
; protected: virtual int __cdecl DIALOG_WINDOW::OnDlgActivation(class ACTIVATION_EVENT const & __ptr64) __ptr64
?OnDlgActivation@DIALOG_WINDOW@@MEAAHAEBVACTIVATION_EVENT@@@Z
; protected: virtual int __cdecl DIALOG_WINDOW::OnDlgDeactivation(class ACTIVATION_EVENT const & __ptr64) __ptr64
?OnDlgDeactivation@DIALOG_WINDOW@@MEAAHAEBVACTIVATION_EVENT@@@Z
; protected: virtual int __cdecl NT_USER_BROWSER_DIALOG::OnDlgDeactivation(class ACTIVATION_EVENT const & __ptr64) __ptr64
?OnDlgDeactivation@NT_USER_BROWSER_DIALOG@@MEAAHAEBVACTIVATION_EVENT@@@Z
; protected: long __cdecl NT_USER_BROWSER_DIALOG::OnDomainChange(class BROWSER_DOMAIN * __ptr64,class ADMIN_AUTHORITY const * __ptr64) __ptr64
?OnDomainChange@NT_USER_BROWSER_DIALOG@@IEAAJPEAVBROWSER_DOMAIN@@PEBVADMIN_AUTHORITY@@@Z
; private: void __cdecl BASE_SET_FOCUS_DLG::OnDomainLBChange(void) __ptr64
?OnDomainLBChange@BASE_SET_FOCUS_DLG@@AEAAXXZ
; public: void __cdecl HIER_LISTBOX::OnDoubleClick(class HIER_LBI * __ptr64) __ptr64
?OnDoubleClick@HIER_LISTBOX@@QEAAXPEAVHIER_LBI@@@Z
; protected: virtual void __cdecl H_SPLITTER_BAR::OnDragRelease(class XYPOINT const & __ptr64) __ptr64
?OnDragRelease@H_SPLITTER_BAR@@MEAAXAEBVXYPOINT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnDropDown(class CONTROL_EVENT const & __ptr64) __ptr64
?OnDropDown@CLIENT_WINDOW@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnEnter(class CONTROL_EVENT const & __ptr64) __ptr64
?OnEnter@CLIENT_WINDOW@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl SPIN_SLE_NUM::OnEnter(class CONTROL_EVENT const & __ptr64) __ptr64
?OnEnter@SPIN_SLE_NUM@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl SPIN_SLE_NUM_VALID::OnEnter(class CONTROL_EVENT const & __ptr64) __ptr64
?OnEnter@SPIN_SLE_NUM_VALID@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: virtual void __cdecl EXPANDABLE_DIALOG::OnExpand(void) __ptr64
?OnExpand@EXPANDABLE_DIALOG@@MEAAXXZ
; protected: virtual int __cdecl CLIENT_WINDOW::OnFocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnFocus@CLIENT_WINDOW@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnFocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnFocus@DISPATCHER@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl FOCUS_CHECKBOX::OnFocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnFocus@FOCUS_CHECKBOX@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl LOGON_HOURS_CONTROL::OnFocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnFocus@LOGON_HOURS_CONTROL@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl SPIN_ITEM::OnFocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnFocus@SPIN_ITEM@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl SPIN_SLE_NUM::OnFocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnFocus@SPIN_SLE_NUM@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl SPIN_SLE_STR::OnFocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnFocus@SPIN_SLE_STR@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual int __cdecl STATIC_SPIN_ITEM::OnFocus(class FOCUS_EVENT const & __ptr64) __ptr64
?OnFocus@STATIC_SPIN_ITEM@@MEAAHAEBVFOCUS_EVENT@@@Z
; protected: virtual long __cdecl CONTROL_GROUP::OnGroupAction(class CONTROL_GROUP * __ptr64) __ptr64
?OnGroupAction@CONTROL_GROUP@@MEAAJPEAV1@@Z
; protected: virtual long __cdecl MAGIC_GROUP::OnGroupAction(class CONTROL_GROUP * __ptr64) __ptr64
?OnGroupAction@MAGIC_GROUP@@MEAAJPEAVCONTROL_GROUP@@@Z
; private: int __cdecl DIALOG_WINDOW::OnHelp(void) __ptr64
?OnHelp@DIALOG_WINDOW@@AEAAHXZ
; public: void __cdecl GET_FNAME_BASE_DLG::OnHelp(struct HWND__ * __ptr64) __ptr64
?OnHelp@GET_FNAME_BASE_DLG@@QEAAXPEAUHWND__@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnKeyDown(class VKEY_EVENT const & __ptr64) __ptr64
?OnKeyDown@CLIENT_WINDOW@@MEAAHAEBVVKEY_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnKeyDown(class VKEY_EVENT const & __ptr64) __ptr64
?OnKeyDown@DISPATCHER@@MEAAHAEBVVKEY_EVENT@@@Z
; protected: virtual int __cdecl LOGON_HOURS_CONTROL::OnKeyDown(class VKEY_EVENT const & __ptr64) __ptr64
?OnKeyDown@LOGON_HOURS_CONTROL@@MEAAHAEBVVKEY_EVENT@@@Z
; protected: virtual int __cdecl SPIN_SLE_NUM::OnKeyDown(class VKEY_EVENT const & __ptr64) __ptr64
?OnKeyDown@SPIN_SLE_NUM@@MEAAHAEBVVKEY_EVENT@@@Z
; protected: virtual int __cdecl SPIN_SLE_STR::OnKeyDown(class VKEY_EVENT const & __ptr64) __ptr64
?OnKeyDown@SPIN_SLE_STR@@MEAAHAEBVVKEY_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnKeyUp(class VKEY_EVENT const & __ptr64) __ptr64
?OnKeyUp@CLIENT_WINDOW@@MEAAHAEBVVKEY_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnKeyUp(class VKEY_EVENT const & __ptr64) __ptr64
?OnKeyUp@DISPATCHER@@MEAAHAEBVVKEY_EVENT@@@Z
; protected: virtual int __cdecl LOGON_HOURS_CONTROL::OnKeyUp(class VKEY_EVENT const & __ptr64) __ptr64
?OnKeyUp@LOGON_HOURS_CONTROL@@MEAAHAEBVVKEY_EVENT@@@Z
; protected: static int __cdecl OWNER_WINDOW::OnLBIMessages(unsigned int,unsigned __int64,__int64)
?OnLBIMessages@OWNER_WINDOW@@KAHI_K_J@Z
; protected: virtual int __cdecl ARROW_BUTTON::OnLMouseButtonDblClick(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonDblClick@ARROW_BUTTON@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnLMouseButtonDblClick(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonDblClick@CLIENT_WINDOW@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnLMouseButtonDblClick(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonDblClick@DISPATCHER@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl ARROW_BUTTON::OnLMouseButtonDown(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonDown@ARROW_BUTTON@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnLMouseButtonDown(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonDown@CLIENT_WINDOW@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnLMouseButtonDown(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonDown@DISPATCHER@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl H_SPLITTER_BAR::OnLMouseButtonDown(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonDown@H_SPLITTER_BAR@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl LOGON_HOURS_CONTROL::OnLMouseButtonDown(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonDown@LOGON_HOURS_CONTROL@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl ARROW_BUTTON::OnLMouseButtonUp(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonUp@ARROW_BUTTON@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnLMouseButtonUp(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonUp@CLIENT_WINDOW@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnLMouseButtonUp(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonUp@DISPATCHER@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl H_SPLITTER_BAR::OnLMouseButtonUp(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonUp@H_SPLITTER_BAR@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl LOGON_HOURS_CONTROL::OnLMouseButtonUp(class MOUSE_EVENT const & __ptr64) __ptr64
?OnLMouseButtonUp@LOGON_HOURS_CONTROL@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: long __cdecl NT_LOCALGROUP_BROWSER_DIALOG::OnMembers(void) __ptr64
?OnMembers@NT_LOCALGROUP_BROWSER_DIALOG@@IEAAJXZ
; protected: long __cdecl NT_USER_BROWSER_DIALOG::OnMembers(void) __ptr64
?OnMembers@NT_USER_BROWSER_DIALOG@@IEAAJXZ
; protected: virtual int __cdecl APP_WINDOW::OnMenuCommand(unsigned int) __ptr64
?OnMenuCommand@APP_WINDOW@@MEAAHI@Z
; protected: virtual int __cdecl APP_WINDOW::OnMenuInit(class MENU_EVENT const & __ptr64) __ptr64
?OnMenuInit@APP_WINDOW@@MEAAHAEBVMENU_EVENT@@@Z
; protected: virtual int __cdecl APP_WINDOW::OnMenuSelect(class MENUITEM_EVENT const & __ptr64) __ptr64
?OnMenuSelect@APP_WINDOW@@MEAAHAEBVMENUITEM_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnMouseMove(class MOUSE_EVENT const & __ptr64) __ptr64
?OnMouseMove@CLIENT_WINDOW@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnMouseMove(class MOUSE_EVENT const & __ptr64) __ptr64
?OnMouseMove@DISPATCHER@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl H_SPLITTER_BAR::OnMouseMove(class MOUSE_EVENT const & __ptr64) __ptr64
?OnMouseMove@H_SPLITTER_BAR@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl LOGON_HOURS_CONTROL::OnMouseMove(class MOUSE_EVENT const & __ptr64) __ptr64
?OnMouseMove@LOGON_HOURS_CONTROL@@MEAAHAEBVMOUSE_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnMove(class MOVE_EVENT const & __ptr64) __ptr64
?OnMove@CLIENT_WINDOW@@MEAAHAEBVMOVE_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnMove(class MOVE_EVENT const & __ptr64) __ptr64
?OnMove@DISPATCHER@@MEAAHAEBVMOVE_EVENT@@@Z
; protected: virtual class LBI * __ptr64 __cdecl USER_BROWSER_LB::OnNewItem(unsigned int) __ptr64
?OnNewItem@USER_BROWSER_LB@@MEAAPEAVLBI@@I@Z
; protected: virtual int __cdecl BASE_SET_FOCUS_DLG::OnOK(void) __ptr64
?OnOK@BASE_SET_FOCUS_DLG@@MEAAHXZ
; protected: virtual int __cdecl DIALOG_WINDOW::OnOK(void) __ptr64
?OnOK@DIALOG_WINDOW@@MEAAHXZ
; protected: virtual int __cdecl MSGPOPUP_DIALOG::OnOK(void) __ptr64
?OnOK@MSGPOPUP_DIALOG@@MEAAHXZ
; private: virtual int __cdecl MSG_DIALOG_BASE::OnOK(void) __ptr64
?OnOK@MSG_DIALOG_BASE@@EEAAHXZ
; protected: virtual int __cdecl NT_FIND_ACCOUNT_DIALOG::OnOK(void) __ptr64
?OnOK@NT_FIND_ACCOUNT_DIALOG@@MEAAHXZ
; protected: virtual int __cdecl NT_USER_BROWSER_DIALOG::OnOK(void) __ptr64
?OnOK@NT_USER_BROWSER_DIALOG@@MEAAHXZ
; protected: virtual int __cdecl PROMPT_FOR_ANY_DC_DLG::OnOK(void) __ptr64
?OnOK@PROMPT_FOR_ANY_DC_DLG@@MEAAHXZ
; protected: virtual int __cdecl CLIENT_WINDOW::OnOther(class EVENT const & __ptr64) __ptr64
?OnOther@CLIENT_WINDOW@@MEAAHAEBVEVENT@@@Z
; protected: virtual int __cdecl APP_WINDOW::OnPaintReq(void) __ptr64
?OnPaintReq@APP_WINDOW@@MEAAHXZ
; protected: virtual int __cdecl CLIENT_WINDOW::OnPaintReq(void) __ptr64
?OnPaintReq@CLIENT_WINDOW@@MEAAHXZ
; protected: virtual int __cdecl DISPATCHER::OnPaintReq(void) __ptr64
?OnPaintReq@DISPATCHER@@MEAAHXZ
; protected: virtual int __cdecl FOCUS_CHECKBOX::OnPaintReq(void) __ptr64
?OnPaintReq@FOCUS_CHECKBOX@@MEAAHXZ
; protected: virtual int __cdecl H_SPLITTER_BAR::OnPaintReq(void) __ptr64
?OnPaintReq@H_SPLITTER_BAR@@MEAAHXZ
; protected: virtual int __cdecl LOGON_HOURS_CONTROL::OnPaintReq(void) __ptr64
?OnPaintReq@LOGON_HOURS_CONTROL@@MEAAHXZ
; protected: virtual int __cdecl METER::OnPaintReq(void) __ptr64
?OnPaintReq@METER@@MEAAHXZ
; protected: virtual unsigned long __cdecl DISPATCHER::OnQDlgCode(void) __ptr64
?OnQDlgCode@DISPATCHER@@MEAAKXZ
; protected: virtual unsigned long __cdecl LOGON_HOURS_CONTROL::OnQDlgCode(void) __ptr64
?OnQDlgCode@LOGON_HOURS_CONTROL@@MEAAKXZ
; protected: virtual unsigned long __cdecl DISPATCHER::OnQHitTest(class XYPOINT const & __ptr64) __ptr64
?OnQHitTest@DISPATCHER@@MEAAKAEBVXYPOINT@@@Z
; protected: virtual unsigned long __cdecl H_SPLITTER_BAR::OnQHitTest(class XYPOINT const & __ptr64) __ptr64
?OnQHitTest@H_SPLITTER_BAR@@MEAAKAEBVXYPOINT@@@Z
; protected: virtual unsigned long __cdecl LOGON_HOURS_CONTROL::OnQHitTest(class XYPOINT const & __ptr64) __ptr64
?OnQHitTest@LOGON_HOURS_CONTROL@@MEAAKAEBVXYPOINT@@@Z
; protected: virtual int __cdecl APP_WINDOW::OnQMinMax(class QMINMAX_EVENT & __ptr64) __ptr64
?OnQMinMax@APP_WINDOW@@MEAAHAEAVQMINMAX_EVENT@@@Z
; protected: virtual unsigned long __cdecl DISPATCHER::OnQMouseActivate(class QMOUSEACT_EVENT const & __ptr64) __ptr64
?OnQMouseActivate@DISPATCHER@@MEAAKAEBVQMOUSEACT_EVENT@@@Z
; protected: virtual unsigned long __cdecl LOGON_HOURS_CONTROL::OnQMouseActivate(class QMOUSEACT_EVENT const & __ptr64) __ptr64
?OnQMouseActivate@LOGON_HOURS_CONTROL@@MEAAKAEBVQMOUSEACT_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnQMouseCursor(class QMOUSEACT_EVENT const & __ptr64) __ptr64
?OnQMouseCursor@DISPATCHER@@MEAAHAEBVQMOUSEACT_EVENT@@@Z
; protected: virtual int __cdecl H_SPLITTER_BAR::OnQMouseCursor(class QMOUSEACT_EVENT const & __ptr64) __ptr64
?OnQMouseCursor@H_SPLITTER_BAR@@MEAAHAEBVQMOUSEACT_EVENT@@@Z
; protected: virtual int __cdecl LOGON_HOURS_CONTROL::OnQMouseCursor(class QMOUSEACT_EVENT const & __ptr64) __ptr64
?OnQMouseCursor@LOGON_HOURS_CONTROL@@MEAAHAEBVQMOUSEACT_EVENT@@@Z
; protected: long __cdecl SLE_STRLB_GROUP::OnRemove(void) __ptr64
?OnRemove@SLE_STRLB_GROUP@@IEAAJXZ
; protected: virtual int __cdecl CLIENT_WINDOW::OnResize(class SIZE_EVENT const & __ptr64) __ptr64
?OnResize@CLIENT_WINDOW@@MEAAHAEBVSIZE_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnResize(class SIZE_EVENT const & __ptr64) __ptr64
?OnResize@DISPATCHER@@MEAAHAEBVSIZE_EVENT@@@Z
; protected: virtual int __cdecl H_SPLITTER_BAR::OnResize(class SIZE_EVENT const & __ptr64) __ptr64
?OnResize@H_SPLITTER_BAR@@MEAAHAEBVSIZE_EVENT@@@Z
; protected: virtual int __cdecl DIALOG_WINDOW::OnScrollBar(class SCROLL_EVENT const & __ptr64) __ptr64
?OnScrollBar@DIALOG_WINDOW@@MEAAHAEBVSCROLL_EVENT@@@Z
; protected: virtual int __cdecl DIALOG_WINDOW::OnScrollBarThumb(class SCROLL_THUMB_EVENT const & __ptr64) __ptr64
?OnScrollBarThumb@DIALOG_WINDOW@@MEAAHAEBVSCROLL_THUMB_EVENT@@@Z
; protected: long __cdecl NT_USER_BROWSER_DIALOG::OnSearch(void) __ptr64
?OnSearch@NT_USER_BROWSER_DIALOG@@IEAAJXZ
; protected: virtual int __cdecl CLIENT_WINDOW::OnSelect(class CONTROL_EVENT const & __ptr64) __ptr64
?OnSelect@CLIENT_WINDOW@@MEAAHAEBVCONTROL_EVENT@@@Z
; protected: long __cdecl NT_USER_BROWSER_DIALOG::OnShowUsers(void) __ptr64
?OnShowUsers@NT_USER_BROWSER_DIALOG@@IEAAJXZ
; protected: virtual void __cdecl APP_WINDOW::OnShutdown(void) __ptr64
?OnShutdown@APP_WINDOW@@MEAAXXZ
; protected: virtual void __cdecl DIALOG_WINDOW::OnSysColorChange(void) __ptr64
?OnSysColorChange@DIALOG_WINDOW@@MEAAXXZ
; protected: virtual int __cdecl APP_WINDOW::OnSystemChange(class SYSCHANGE_EVENT const & __ptr64) __ptr64
?OnSystemChange@APP_WINDOW@@MEAAHAEBVSYSCHANGE_EVENT@@@Z
; protected: virtual int __cdecl ARROW_BUTTON::OnTimer(class TIMER_EVENT const & __ptr64) __ptr64
?OnTimer@ARROW_BUTTON@@MEAAHAEBVTIMER_EVENT@@@Z
; protected: virtual int __cdecl CANCEL_TASK_DIALOG::OnTimer(class TIMER_EVENT const & __ptr64) __ptr64
?OnTimer@CANCEL_TASK_DIALOG@@MEAAHAEBVTIMER_EVENT@@@Z
; protected: virtual int __cdecl CLIENT_WINDOW::OnTimer(class TIMER_EVENT const & __ptr64) __ptr64
?OnTimer@CLIENT_WINDOW@@MEAAHAEBVTIMER_EVENT@@@Z
; protected: virtual int __cdecl DIALOG_WINDOW::OnTimer(class TIMER_EVENT const & __ptr64) __ptr64
?OnTimer@DIALOG_WINDOW@@MEAAHAEBVTIMER_EVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnTimer(class TIMER_EVENT const & __ptr64) __ptr64
?OnTimer@DISPATCHER@@MEAAHAEBVTIMER_EVENT@@@Z
; protected: virtual int __cdecl TIMER_WINDOW::OnTimer(class TIMER_EVENT const & __ptr64) __ptr64
?OnTimer@TIMER_WINDOW@@MEAAHAEBVTIMER_EVENT@@@Z
; protected: virtual void __cdecl TIMER_CALLOUT::OnTimerNotification(unsigned int) __ptr64
?OnTimerNotification@TIMER_CALLOUT@@MEAAXI@Z
; protected: virtual long __cdecl CONTROL_GROUP::OnUserAction(class CONTROL_WINDOW * __ptr64,class CONTROL_EVENT const & __ptr64) __ptr64
?OnUserAction@CONTROL_GROUP@@MEAAJPEAVCONTROL_WINDOW@@AEBVCONTROL_EVENT@@@Z
; protected: virtual long __cdecl CONTROL_WINDOW::OnUserAction(class CONTROL_EVENT const & __ptr64) __ptr64
?OnUserAction@CONTROL_WINDOW@@MEAAJAEBVCONTROL_EVENT@@@Z
; protected: virtual long __cdecl LM_OLLB::OnUserAction(class CONTROL_EVENT const & __ptr64) __ptr64
?OnUserAction@LM_OLLB@@MEAAJAEBVCONTROL_EVENT@@@Z
; protected: virtual long __cdecl MAGIC_GROUP::OnUserAction(class CONTROL_WINDOW * __ptr64,class CONTROL_EVENT const & __ptr64) __ptr64
?OnUserAction@MAGIC_GROUP@@MEAAJPEAVCONTROL_WINDOW@@AEBVCONTROL_EVENT@@@Z
; protected: virtual long __cdecl ORDER_GROUP::OnUserAction(class CONTROL_WINDOW * __ptr64,class CONTROL_EVENT const & __ptr64) __ptr64
?OnUserAction@ORDER_GROUP@@MEAAJPEAVCONTROL_WINDOW@@AEBVCONTROL_EVENT@@@Z
; protected: virtual long __cdecl RADIO_GROUP::OnUserAction(class CONTROL_WINDOW * __ptr64,class CONTROL_EVENT const & __ptr64) __ptr64
?OnUserAction@RADIO_GROUP@@MEAAJPEAVCONTROL_WINDOW@@AEBVCONTROL_EVENT@@@Z
; protected: virtual long __cdecl SET_CONTROL::OnUserAction(class CONTROL_WINDOW * __ptr64,class CONTROL_EVENT const & __ptr64) __ptr64
?OnUserAction@SET_CONTROL@@MEAAJPEAVCONTROL_WINDOW@@AEBVCONTROL_EVENT@@@Z
; protected: virtual long __cdecl SLE_STRLB_GROUP::OnUserAction(class CONTROL_WINDOW * __ptr64,class CONTROL_EVENT const & __ptr64) __ptr64
?OnUserAction@SLE_STRLB_GROUP@@MEAAJPEAVCONTROL_WINDOW@@AEBVCONTROL_EVENT@@@Z
; protected: virtual long __cdecl SPIN_GROUP::OnUserAction(class CONTROL_WINDOW * __ptr64,class CONTROL_EVENT const & __ptr64) __ptr64
?OnUserAction@SPIN_GROUP@@MEAAJPEAVCONTROL_WINDOW@@AEBVCONTROL_EVENT@@@Z
; protected: virtual long __cdecl STATELBGRP::OnUserAction(class CONTROL_WINDOW * __ptr64,class CONTROL_EVENT const & __ptr64) __ptr64
?OnUserAction@STATELBGRP@@MEAAJPEAVCONTROL_WINDOW@@AEBVCONTROL_EVENT@@@Z
; protected: virtual int __cdecl BASE_SET_FOCUS_DLG::OnUserMessage(class EVENT const & __ptr64) __ptr64
?OnUserMessage@BASE_SET_FOCUS_DLG@@MEAAHAEBVEVENT@@@Z
; protected: virtual int __cdecl DISPATCHER::OnUserMessage(class EVENT const & __ptr64) __ptr64
?OnUserMessage@DISPATCHER@@MEAAHAEBVEVENT@@@Z
; protected: virtual int __cdecl NT_USER_BROWSER_DIALOG::OnUserMessage(class EVENT const & __ptr64) __ptr64
?OnUserMessage@NT_USER_BROWSER_DIALOG@@MEAAHAEBVEVENT@@@Z
; protected: virtual int __cdecl OWNER_WINDOW::OnUserMessage(class EVENT const & __ptr64) __ptr64
?OnUserMessage@OWNER_WINDOW@@MEAAHAEBVEVENT@@@Z
; protected: virtual void __cdecl DIALOG_WINDOW::OnValidationError(unsigned int,long) __ptr64
?OnValidationError@DIALOG_WINDOW@@MEAAXIJ@Z
; private: class LISTBOX * __ptr64 __cdecl SET_CONTROL::OtherListbox(class LISTBOX * __ptr64)const  __ptr64
?OtherListbox@SET_CONTROL@@AEBAPEAVLISTBOX@@PEAV2@@Z
; public: virtual void __cdecl BROWSER_DOMAIN_LBI::Paint(class LISTBOX * __ptr64,struct HDC__ * __ptr64,struct tagRECT const * __ptr64,struct GUILTT_INFO * __ptr64)const  __ptr64
?Paint@BROWSER_DOMAIN_LBI@@UEBAXPEAVLISTBOX@@PEAUHDC__@@PEBUtagRECT@@PEAUGUILTT_INFO@@@Z
; public: virtual void __cdecl BROWSER_DOMAIN_LBI_PB::Paint(class LISTBOX * __ptr64,struct HDC__ * __ptr64,struct tagRECT const * __ptr64,struct GUILTT_INFO * __ptr64)const  __ptr64
?Paint@BROWSER_DOMAIN_LBI_PB@@UEBAXPEAVLISTBOX@@PEAUHDC__@@PEBUtagRECT@@PEAUGUILTT_INFO@@@Z
; public: virtual void __cdecl COUNTED_STR_DTE::Paint(struct HDC__ * __ptr64,struct tagRECT const * __ptr64)const  __ptr64
?Paint@COUNTED_STR_DTE@@UEBAXPEAUHDC__@@PEBUtagRECT@@@Z
; public: int __cdecl DISPLAY_MAP::Paint(struct HDC__ * __ptr64,int,int)const  __ptr64
?Paint@DISPLAY_MAP@@QEBAHPEAUHDC__@@HH@Z
; public: void __cdecl DISPLAY_TABLE::Paint(class LISTBOX * __ptr64,struct HDC__ * __ptr64,struct tagRECT const * __ptr64)const  __ptr64
?Paint@DISPLAY_TABLE@@QEBAXPEAVLISTBOX@@PEAUHDC__@@PEBUtagRECT@@@Z
; public: void __cdecl DISPLAY_TABLE::Paint(class LISTBOX * __ptr64,struct HDC__ * __ptr64,struct tagRECT const * __ptr64,struct GUILTT_INFO * __ptr64)const  __ptr64
?Paint@DISPLAY_TABLE@@QEBAXPEAVLISTBOX@@PEAUHDC__@@PEBUtagRECT@@PEAUGUILTT_INFO@@@Z
; public: virtual void __cdecl DM_DTE::Paint(struct HDC__ * __ptr64,struct tagRECT const * __ptr64)const  __ptr64
?Paint@DM_DTE@@UEBAXPEAUHDC__@@PEBUtagRECT@@@Z
; public: virtual void __cdecl LBI::Paint(class LISTBOX * __ptr64,struct HDC__ * __ptr64,struct tagRECT const * __ptr64,struct GUILTT_INFO * __ptr64)const  __ptr64
?Paint@LBI@@UEBAXPEAVLISTBOX@@PEAUHDC__@@PEBUtagRECT@@PEAUGUILTT_INFO@@@Z
; public: virtual void __cdecl METALLIC_STR_DTE::Paint(struct HDC__ * __ptr64,struct tagRECT const * __ptr64)const  __ptr64
?Paint@METALLIC_STR_DTE@@UEBAXPEAUHDC__@@PEBUtagRECT@@@Z
; public: virtual void __cdecl MULTILINE_STR_DTE::Paint(struct HDC__ * __ptr64,struct tagRECT const * __ptr64)const  __ptr64
?Paint@MULTILINE_STR_DTE@@UEBAXPEAUHDC__@@PEBUtagRECT@@@Z
; public: virtual void __cdecl OLLB_ENTRY::Paint(class LISTBOX * __ptr64,struct HDC__ * __ptr64,struct tagRECT const * __ptr64,struct GUILTT_INFO * __ptr64)const  __ptr64
?Paint@OLLB_ENTRY@@UEBAXPEAVLISTBOX@@PEAUHDC__@@PEBUtagRECT@@PEAUGUILTT_INFO@@@Z
; public: virtual void __cdecl OWNER_DRAW_DMID_DTE::Paint(struct HDC__ * __ptr64,struct tagRECT const * __ptr64)const  __ptr64
?Paint@OWNER_DRAW_DMID_DTE@@UEBAXPEAUHDC__@@PEBUtagRECT@@@Z
; public: virtual void __cdecl OWNER_DRAW_MULTILINE_STR_DTE::Paint(struct HDC__ * __ptr64,struct tagRECT const * __ptr64)const  __ptr64
?Paint@OWNER_DRAW_MULTILINE_STR_DTE@@UEBAXPEAUHDC__@@PEBUtagRECT@@@Z
; public: virtual void __cdecl OWNER_DRAW_STR_DTE::Paint(struct HDC__ * __ptr64,struct tagRECT const * __ptr64)const  __ptr64
?Paint@OWNER_DRAW_STR_DTE@@UEBAXPEAUHDC__@@PEBUtagRECT@@@Z
; protected: virtual void __cdecl STLBITEM::Paint(class LISTBOX * __ptr64,struct HDC__ * __ptr64,struct tagRECT const * __ptr64,struct GUILTT_INFO * __ptr64)const  __ptr64
?Paint@STLBITEM@@MEBAXPEAVLISTBOX@@PEAUHDC__@@PEBUtagRECT@@PEAUGUILTT_INFO@@@Z
; public: virtual void __cdecl STR_DTE::Paint(struct HDC__ * __ptr64,struct tagRECT const * __ptr64)const  __ptr64
?Paint@STR_DTE@@UEBAXPEAUHDC__@@PEBUtagRECT@@@Z
; public: virtual void __cdecl STR_DTE_ELLIPSIS::Paint(struct HDC__ * __ptr64,struct tagRECT const * __ptr64)const  __ptr64
?Paint@STR_DTE_ELLIPSIS@@UEBAXPEAUHDC__@@PEBUtagRECT@@@Z
; public: virtual void __cdecl USER_BROWSER_LBI::Paint(class LISTBOX * __ptr64,struct HDC__ * __ptr64,struct tagRECT const * __ptr64,struct GUILTT_INFO * __ptr64)const  __ptr64
?Paint@USER_BROWSER_LBI@@UEBAXPEAVLISTBOX@@PEAUHDC__@@PEBUtagRECT@@PEAUGUILTT_INFO@@@Z
; protected: long __cdecl ACCOUNT_NAMES_MLE::ParseUserNameList(class STRLIST * __ptr64,unsigned short const * __ptr64) __ptr64
?ParseUserNameList@ACCOUNT_NAMES_MLE@@IEAAJPEAVSTRLIST@@PEBG@Z
; private: void __cdecl MSGPOPUP_DIALOG::PlaceButtons(void) __ptr64
?PlaceButtons@MSGPOPUP_DIALOG@@AEAAXXZ
; private: long __cdecl BLT_DATE_SPIN_GROUP::PlaceControl(int,class OWNER_WINDOW * __ptr64,class INTL_PROFILE const & __ptr64,class XYPOINT const & __ptr64,class XYDIMENSION const & __ptr64,class XYPOINT const & __ptr64,class XYDIMENSION const & __ptr64,class XYPOINT const & __ptr64,class XYDIMENSION const & __ptr64) __ptr64
?PlaceControl@BLT_DATE_SPIN_GROUP@@AEAAJHPEAVOWNER_WINDOW@@AEBVINTL_PROFILE@@AEBVXYPOINT@@AEBVXYDIMENSION@@2323@Z
; protected: virtual long __cdecl DOMAIN_FILL_THREAD::PostMain(void) __ptr64
?PostMain@DOMAIN_FILL_THREAD@@MEAAJXZ
; protected: virtual long __cdecl FOCUSDLG_DATA_THREAD::PostMain(void) __ptr64
?PostMain@FOCUSDLG_DATA_THREAD@@MEAAJXZ
; protected: virtual long __cdecl WIN32_THREAD::PostMain(void) __ptr64
?PostMain@WIN32_THREAD@@MEAAJXZ
; protected: virtual long __cdecl WIN32_THREAD::PreMain(void) __ptr64
?PreMain@WIN32_THREAD@@MEAAJXZ
; public: long __cdecl BASE_SET_FOCUS_DLG::Process(int * __ptr64) __ptr64
?Process@BASE_SET_FOCUS_DLG@@QEAAJPEAH@Z
; public: long __cdecl BASE_SET_FOCUS_DLG::Process(unsigned int * __ptr64) __ptr64
?Process@BASE_SET_FOCUS_DLG@@QEAAJPEAI@Z
; public: long __cdecl DIALOG_WINDOW::Process(int * __ptr64) __ptr64
?Process@DIALOG_WINDOW@@QEAAJPEAH@Z
; public: long __cdecl DIALOG_WINDOW::Process(unsigned int * __ptr64) __ptr64
?Process@DIALOG_WINDOW@@QEAAJPEAI@Z
; public: long __cdecl EXPANDABLE_DIALOG::Process(int * __ptr64) __ptr64
?Process@EXPANDABLE_DIALOG@@QEAAJPEAH@Z
; public: long __cdecl EXPANDABLE_DIALOG::Process(unsigned int * __ptr64) __ptr64
?Process@EXPANDABLE_DIALOG@@QEAAJPEAI@Z
; public: virtual long __cdecl GET_OPEN_FILENAME_DLG::Process(int * __ptr64) __ptr64
?Process@GET_OPEN_FILENAME_DLG@@UEAAJPEAH@Z
; public: virtual long __cdecl GET_SAVE_FILENAME_DLG::Process(int * __ptr64) __ptr64
?Process@GET_SAVE_FILENAME_DLG@@UEAAJPEAH@Z
; public: static long __cdecl WIN32_FONT_PICKER::Process(class OWNER_WINDOW * __ptr64,int * __ptr64,class FONT * __ptr64,struct tagLOGFONTW * __ptr64,struct tagCHOOSEFONTW * __ptr64)
?Process@WIN32_FONT_PICKER@@SAJPEAVOWNER_WINDOW@@PEAHPEAVFONT@@PEAUtagLOGFONTW@@PEAUtagCHOOSEFONTW@@@Z
; private: long __cdecl BASE_SET_FOCUS_DLG::ProcessNetPath(class NLS_STR * __ptr64,long * __ptr64) __ptr64
?ProcessNetPath@BASE_SET_FOCUS_DLG@@AEAAJPEAVNLS_STR@@PEAJ@Z
; public: long __cdecl WIN32_EVENT::Pulse(void) __ptr64
?Pulse@WIN32_EVENT@@QEAAJXZ
; public: long __cdecl USER_BROWSER_LBI::QualifyDisplayName(void) __ptr64
?QualifyDisplayName@USER_BROWSER_LBI@@QEAAJXZ
; public: static struct HICON__ * __ptr64 __cdecl CURSOR::Query(void)
?Query@CURSOR@@SAPEAUHICON__@@XZ
; public: virtual long __cdecl SPIN_ITEM::QueryAccCharPos(unsigned short) __ptr64
?QueryAccCharPos@SPIN_ITEM@@UEAAJG@Z
; public: virtual long __cdecl SPIN_SLE_STR::QueryAccCharPos(unsigned short) __ptr64
?QueryAccCharPos@SPIN_SLE_STR@@UEAAJG@Z
; public: long __cdecl SPIN_ITEM::QueryAccKey(class NLS_STR * __ptr64) __ptr64
?QueryAccKey@SPIN_ITEM@@QEAAJPEAVNLS_STR@@@Z
; public: unsigned short const * __ptr64 __cdecl OPEN_LBI_BASE::QueryAccessName(void)const  __ptr64
?QueryAccessName@OPEN_LBI_BASE@@QEBAPEBGXZ
; public: class SAM_DOMAIN * __ptr64 __cdecl BROWSER_DOMAIN::QueryAccountDomain(void)const  __ptr64
?QueryAccountDomain@BROWSER_DOMAIN@@QEBAPEAVSAM_DOMAIN@@XZ
; public: unsigned short const * __ptr64 __cdecl BROWSER_SUBJECT::QueryAccountName(void)const  __ptr64
?QueryAccountName@BROWSER_SUBJECT@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl USER_BROWSER_LBI::QueryAccountName(void)const  __ptr64
?QueryAccountName@USER_BROWSER_LBI@@QEBAPEBGXZ
; protected: virtual int __cdecl H_SPLITTER_BAR::QueryActiveArea(void) __ptr64
?QueryActiveArea@H_SPLITTER_BAR@@MEAAHXZ
; protected: class PUSH_BUTTON * __ptr64 __cdecl SLE_STRLB_GROUP::QueryAddButton(void)const  __ptr64
?QueryAddButton@SLE_STRLB_GROUP@@IEBAPEAVPUSH_BUTTON@@XZ
; public: class ADMIN_AUTHORITY * __ptr64 __cdecl BROWSER_DOMAIN::QueryAdminAuthority(void)const  __ptr64
?QueryAdminAuthority@BROWSER_DOMAIN@@QEBAPEAVADMIN_AUTHORITY@@XZ
; public: class ADMIN_AUTHORITY * __ptr64 __cdecl DOMAIN_FILL_THREAD::QueryAdminAuthority(void)const  __ptr64
?QueryAdminAuthority@DOMAIN_FILL_THREAD@@QEBAPEAVADMIN_AUTHORITY@@XZ
; public: unsigned short const * __ptr64 __cdecl UI_DOMAIN::QueryAnyDC(void)const  __ptr64
?QueryAnyDC@UI_DOMAIN@@QEBAPEBGXZ
; public: int __cdecl OWNER_WINDOW::QueryAttribute(unsigned long) __ptr64
?QueryAttribute@OWNER_WINDOW@@QEAAHK@Z
; public: class AUDIT_CHECKBOXES * __ptr64 __cdecl SET_OF_AUDIT_CATEGORIES::QueryAuditCheckBox(int) __ptr64
?QueryAuditCheckBox@SET_OF_AUDIT_CATEGORIES@@QEAAPEAVAUDIT_CHECKBOXES@@H@Z
; public: int __cdecl DEVICE_CONTEXT::QueryAveCharWidth(void)const  __ptr64
?QueryAveCharWidth@DEVICE_CONTEXT@@QEBAHXZ
; public: virtual unsigned long __cdecl CHANGEABLE_SPIN_ITEM::QueryBigDecValue(void)const  __ptr64
?QueryBigDecValue@CHANGEABLE_SPIN_ITEM@@UEBAKXZ
; public: virtual unsigned long __cdecl SPIN_SLE_VALID_SECOND::QueryBigDecValue(void)const  __ptr64
?QueryBigDecValue@SPIN_SLE_VALID_SECOND@@UEBAKXZ
; public: virtual unsigned long __cdecl CHANGEABLE_SPIN_ITEM::QueryBigIncValue(void)const  __ptr64
?QueryBigIncValue@CHANGEABLE_SPIN_ITEM@@UEBAKXZ
; public: virtual unsigned long __cdecl SPIN_SLE_VALID_SECOND::QueryBigIncValue(void)const  __ptr64
?QueryBigIncValue@SPIN_SLE_VALID_SECOND@@UEBAKXZ
; public: class BITFIELD * __ptr64 __cdecl STRING_BITSET_PAIR::QueryBitfield(void) __ptr64
?QueryBitfield@STRING_BITSET_PAIR@@QEAAPEAVBITFIELD@@XZ
; public: struct HBITMAP__ * __ptr64 __cdecl DISPLAY_MAP::QueryBitmapHandle(void)const  __ptr64
?QueryBitmapHandle@DISPLAY_MAP@@QEBAPEAUHBITMAP__@@XZ
; public: long __cdecl MASK_MAP::QueryBits(unsigned int,class BITFIELD * __ptr64,class NLS_STR * __ptr64,int * __ptr64) __ptr64
?QueryBits@MASK_MAP@@QEAAJIPEAVBITFIELD@@PEAVNLS_STR@@PEAH@Z
; public: int __cdecl XYRECT::QueryBottom(void)const  __ptr64
?QueryBottom@XYRECT@@QEBAHXZ
; public: class BROWSER_DOMAIN * __ptr64 __cdecl BROWSER_DOMAIN_LBI::QueryBrowserDomain(void)const  __ptr64
?QueryBrowserDomain@BROWSER_DOMAIN_LBI@@QEBAPEAVBROWSER_DOMAIN@@XZ
; public: class BROWSER_DOMAIN * __ptr64 __cdecl BROWSER_DOMAIN_LBI_PB::QueryBrowserDomain(void)const  __ptr64
?QueryBrowserDomain@BROWSER_DOMAIN_LBI_PB@@QEBAPEAVBROWSER_DOMAIN@@XZ
; protected: void * __ptr64 __cdecl NT_MEMORY::QueryBuffer(void)const  __ptr64
?QueryBuffer@NT_MEMORY@@IEBAPEAXXZ
; protected: unsigned char const * __ptr64 __cdecl ENUM_OBJ_BASE::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@ENUM_OBJ_BASE@@IEBAPEBEXZ
; public: struct _DOMAIN_DISPLAY_GROUP const * __ptr64 __cdecl NT_GROUP_ENUM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@NT_GROUP_ENUM_OBJ@@QEBAPEBU_DOMAIN_DISPLAY_GROUP@@XZ
; public: struct _SERVER_INFO_101 const * __ptr64 __cdecl SERVER1_ENUM_OBJ::QueryBufferPtr(void)const  __ptr64
?QueryBufferPtr@SERVER1_ENUM_OBJ@@QEBAPEBU_SERVER_INFO_101@@XZ
; public: class SAM_DOMAIN * __ptr64 __cdecl BROWSER_DOMAIN::QueryBuiltinDomain(void)const  __ptr64
?QueryBuiltinDomain@BROWSER_DOMAIN@@QEBAPEAVSAM_DOMAIN@@XZ
; private: class PUSH_BUTTON * __ptr64 __cdecl MSGPOPUP_DIALOG::QueryButton(unsigned int) __ptr64
?QueryButton@MSGPOPUP_DIALOG@@AEAAPEAVPUSH_BUTTON@@I@Z
; public: int __cdecl LIST_CONTROL::QueryCaretIndex(void)const  __ptr64
?QueryCaretIndex@LIST_CONTROL@@QEBAHXZ
; public: unsigned short __cdecl CHAR_EVENT::QueryChar(void)const  __ptr64
?QueryChar@CHAR_EVENT@@QEBAGXZ
; public: int __cdecl STATE2_BUTTON_CONTROL::QueryCheck(void)const  __ptr64
?QueryCheck@STATE2_BUTTON_CONTROL@@QEBAHXZ
; public: unsigned int __cdecl CONTROL_ENTRY::QueryCid(void)const  __ptr64
?QueryCid@CONTROL_ENTRY@@QEBAIXZ
; public: unsigned int __cdecl CONTROL_EVENT::QueryCid(void)const  __ptr64
?QueryCid@CONTROL_EVENT@@QEBAIXZ
; public: unsigned int __cdecl CONTROL_WINDOW::QueryCid(void)const  __ptr64
?QueryCid@CONTROL_WINDOW@@QEBAIXZ
; public: void __cdecl WINDOW::QueryClientRect(struct tagRECT * __ptr64)const  __ptr64
?QueryClientRect@WINDOW@@QEBAXPEAUtagRECT@@@Z
; public: void __cdecl WINDOW::QueryClientRect(class XYRECT * __ptr64)const  __ptr64
?QueryClientRect@WINDOW@@QEBAXPEAVXYRECT@@@Z
; public: unsigned int __cdecl CONTROL_EVENT::QueryCode(void)const  __ptr64
?QueryCode@CONTROL_EVENT@@QEBAIXZ
; public: unsigned int const * __ptr64 __cdecl STATELB::QueryColData(void) __ptr64
?QueryColData@STATELB@@QEAAPEBIXZ
; public: unsigned int const * __ptr64 __cdecl BROWSER_DOMAIN_CB::QueryColWidthArray(void)const  __ptr64
?QueryColWidthArray@BROWSER_DOMAIN_CB@@QEBAPEBIXZ
; public: unsigned int const * __ptr64 __cdecl USER_BROWSER_LB::QueryColWidthArray(void)const  __ptr64
?QueryColWidthArray@USER_BROWSER_LB@@QEBAPEBIXZ
; protected: static unsigned short const * __ptr64 __cdecl CONTROL_WINDOW::QueryComboboxClassName(void)
?QueryComboboxClassName@CONTROL_WINDOW@@KAPEBGXZ
; public: enum SCROLL_EVENT::SCROLL_COMMAND  __cdecl SCROLL_EVENT::QueryCommand(void)const  __ptr64
?QueryCommand@SCROLL_EVENT@@QEBA?AW4SCROLL_COMMAND@1@XZ
; public: unsigned short const * __ptr64 __cdecl BROWSER_SUBJECT::QueryComment(void)const  __ptr64
?QueryComment@BROWSER_SUBJECT@@QEBAPEBGXZ
; public: long __cdecl NT_GROUP_ENUM_OBJ::QueryComment(class NLS_STR * __ptr64)const  __ptr64
?QueryComment@NT_GROUP_ENUM_OBJ@@QEBAJPEAVNLS_STR@@@Z
; public: unsigned short const * __ptr64 __cdecl SERVER1_ENUM_OBJ::QueryComment(void)const  __ptr64
?QueryComment@SERVER1_ENUM_OBJ@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl USER_BROWSER_LBI::QueryComment(void)const  __ptr64
?QueryComment@USER_BROWSER_LBI@@QEBAPEBGXZ
; protected: virtual int (__cdecl*__cdecl USER_BROWSER_LBI_CACHE::QueryCompareMethod(void)const  __ptr64)(void const * __ptr64,void const * __ptr64)
?QueryCompareMethod@USER_BROWSER_LBI_CACHE@@MEBAP6AHPEBX0@ZXZ
; protected: virtual int (__cdecl*__cdecl USER_LBI_CACHE::QueryCompareMethod(void)const  __ptr64)(void const * __ptr64,void const * __ptr64)
?QueryCompareMethod@USER_LBI_CACHE@@MEBAP6AHPEBX0@ZXZ
; public: class CONTROL_VALUE * __ptr64 __cdecl CONTROLVAL_CID_PAIR::QueryContVal(void)const  __ptr64
?QueryContVal@CONTROLVAL_CID_PAIR@@QEBAPEAVCONTROL_VALUE@@XZ
; public: void __cdecl SPIN_SLE_NUM::QueryContent(unsigned long * __ptr64)const  __ptr64
?QueryContent@SPIN_SLE_NUM@@QEBAXPEAK@Z
; public: void __cdecl SPIN_SLE_NUM::QueryContent(class NLS_STR * __ptr64)const  __ptr64
?QueryContent@SPIN_SLE_NUM@@QEBAXPEAVNLS_STR@@@Z
; public: long __cdecl SPIN_SLE_STR::QueryContent(class NLS_STR * __ptr64)const  __ptr64
?QueryContent@SPIN_SLE_STR@@QEBAJPEAVNLS_STR@@@Z
; public: class CONTROL_WINDOW * __ptr64 __cdecl CUSTOM_CONTROL::QueryControlWin(void)const  __ptr64
?QueryControlWin@CUSTOM_CONTROL@@QEBAPEAVCONTROL_WINDOW@@XZ
; public: unsigned int __cdecl ARRAY_CONTROLVAL_CID_PAIR::QueryCount(void)const  __ptr64
?QueryCount@ARRAY_CONTROLVAL_CID_PAIR@@QEBAIXZ
; public: unsigned int __cdecl BITFIELD::QueryCount(void)const  __ptr64
?QueryCount@BITFIELD@@QEBAIXZ
; public: unsigned int __cdecl CONTROL_TABLE::QueryCount(void)const  __ptr64
?QueryCount@CONTROL_TABLE@@QEBAIXZ
; public: int __cdecl COUNTED_STR_DTE::QueryCount(void)const  __ptr64
?QueryCount@COUNTED_STR_DTE@@QEBAHXZ
; public: int __cdecl HEAP_BASE::QueryCount(void)const  __ptr64
?QueryCount@HEAP_BASE@@QEBAHXZ
; public: int __cdecl LIST_CONTROL::QueryCount(void)const  __ptr64
?QueryCount@LIST_CONTROL@@QEBAHXZ
; public: unsigned int __cdecl MASK_MAP::QueryCount(void) __ptr64
?QueryCount@MASK_MAP@@QEAAIXZ
; public: unsigned long __cdecl NT_MEMORY::QueryCount(void)const  __ptr64
?QueryCount@NT_MEMORY@@QEBAKXZ
; public: int __cdecl RADIO_GROUP::QueryCount(void) __ptr64
?QueryCount@RADIO_GROUP@@QEAAHXZ
; public: int __cdecl SET_OF_AUDIT_CATEGORIES::QueryCount(void) __ptr64
?QueryCount@SET_OF_AUDIT_CATEGORIES@@QEAAHXZ
; public: unsigned long __cdecl USER_BROWSER_LBI_CACHE::QueryCount(void)const  __ptr64
?QueryCount@USER_BROWSER_LBI_CACHE@@QEBAKXZ
; public: int __cdecl USER_LBI_CACHE::QueryCount(void)const  __ptr64
?QueryCount@USER_LBI_CACHE@@QEBAHXZ
; protected: virtual long __cdecl USRLB_NT_GROUP_ENUM::QueryCountPreferences(unsigned long * __ptr64,unsigned long * __ptr64,unsigned int,unsigned long,unsigned long,unsigned long) __ptr64
?QueryCountPreferences@USRLB_NT_GROUP_ENUM@@MEAAJPEAK0IKKK@Z
; public: class CONTROL_WINDOW * __ptr64 __cdecl CONTROL_ENTRY::QueryCtrlPtr(void)const  __ptr64
?QueryCtrlPtr@CONTROL_ENTRY@@QEBAPEAVCONTROL_WINDOW@@XZ
; public: class USER_BROWSER_LBI_CACHE * __ptr64 __cdecl USER_BROWSER_LB::QueryCurrentCache(void)const  __ptr64
?QueryCurrentCache@USER_BROWSER_LB@@QEBAPEAVUSER_BROWSER_LBI_CACHE@@XZ
; public: class BROWSER_DOMAIN * __ptr64 __cdecl NT_USER_BROWSER_DIALOG::QueryCurrentDomainFocus(void)const  __ptr64
?QueryCurrentDomainFocus@NT_USER_BROWSER_DIALOG@@QEBAPEAVBROWSER_DOMAIN@@XZ
; protected: class SPIN_ITEM * __ptr64 __cdecl SPIN_GROUP::QueryCurrentField(void)const  __ptr64
?QueryCurrentField@SPIN_GROUP@@IEBAPEAVSPIN_ITEM@@XZ
; public: int __cdecl LIST_CONTROL::QueryCurrentItem(void)const  __ptr64
?QueryCurrentItem@LIST_CONTROL@@QEBAHXZ
; public: unsigned short const * __ptr64 __cdecl NT_USER_BROWSER_DIALOG::QueryDCofPrimaryDomain(void) __ptr64
?QueryDCofPrimaryDomain@NT_USER_BROWSER_DIALOG@@QEAAPEBGXZ
; public: int __cdecl BLT_DATE_SPIN_GROUP::QueryDay(void)const  __ptr64
?QueryDay@BLT_DATE_SPIN_GROUP@@QEBAHXZ
; public: int __cdecl WIN_TIME::QueryDay(void)const  __ptr64
?QueryDay@WIN_TIME@@QEBAHXZ
; public: int __cdecl INTL_PROFILE::QueryDayPos(void)const  __ptr64
?QueryDayPos@INTL_PROFILE@@QEBAHXZ
; public: unsigned long __cdecl UI_EXT::QueryDelta(void)const  __ptr64
?QueryDelta@UI_EXT@@QEBAKXZ
; public: unsigned long __cdecl UI_EXT_MGR::QueryDeltaDelta(void)const  __ptr64
?QueryDeltaDelta@UI_EXT_MGR@@QEBAKXZ
; private: unsigned int __cdecl HIER_LBI::QueryDescendants(void) __ptr64
?QueryDescendants@HIER_LBI@@AEAAIXZ
; public: int __cdecl H_SPLITTER_BAR::QueryDesiredHeight(void) __ptr64
?QueryDesiredHeight@H_SPLITTER_BAR@@QEAAHXZ
; public: long __cdecl DEVICE_COMBO::QueryDevice(class NLS_STR * __ptr64)const  __ptr64
?QueryDevice@DEVICE_COMBO@@QEBAJPEAVNLS_STR@@@Z
; public: struct HBITMAP__ * __ptr64 __cdecl GRAPHICAL_BUTTON_WITH_DISABLE::QueryDisable(void)const  __ptr64
?QueryDisable@GRAPHICAL_BUTTON_WITH_DISABLE@@QEBAPEAUHBITMAP__@@XZ
; public: class DISPLAY_MAP * __ptr64 __cdecl BROWSER_DOMAIN_CB::QueryDisplayMap(class BROWSER_DOMAIN_LBI const * __ptr64) __ptr64
?QueryDisplayMap@BROWSER_DOMAIN_CB@@QEAAPEAVDISPLAY_MAP@@PEBVBROWSER_DOMAIN_LBI@@@Z
; public: class DISPLAY_MAP * __ptr64 __cdecl DM_DTE::QueryDisplayMap(void)const  __ptr64
?QueryDisplayMap@DM_DTE@@QEBAPEAVDISPLAY_MAP@@XZ
; public: class DISPLAY_MAP * __ptr64 __cdecl SUBJECT_BITMAP_BLOCK::QueryDisplayMap(int,int,int) __ptr64
?QueryDisplayMap@SUBJECT_BITMAP_BLOCK@@QEAAPEAVDISPLAY_MAP@@HHH@Z
; public: class DISPLAY_MAP * __ptr64 __cdecl USER_BROWSER_LB::QueryDisplayMap(class USER_BROWSER_LBI const * __ptr64) __ptr64
?QueryDisplayMap@USER_BROWSER_LB@@QEAAPEAVDISPLAY_MAP@@PEBVUSER_BROWSER_LBI@@@Z
; public: unsigned short const * __ptr64 __cdecl BROWSER_DOMAIN::QueryDisplayName(void)const  __ptr64
?QueryDisplayName@BROWSER_DOMAIN@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl BROWSER_DOMAIN_LBI::QueryDisplayName(void)const  __ptr64
?QueryDisplayName@BROWSER_DOMAIN_LBI@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl USER_BROWSER_LBI::QueryDisplayName(void)const  __ptr64
?QueryDisplayName@USER_BROWSER_LBI@@QEBAPEBGXZ
; public: unsigned int __cdecl DM_DTE::QueryDisplayWidth(void)const  __ptr64
?QueryDisplayWidth@DM_DTE@@QEBAIXZ
; public: unsigned short const * __ptr64 __cdecl UI_EXT::QueryDllName(void)const  __ptr64
?QueryDllName@UI_EXT@@QEBAPEBGXZ
; public: class DM_DTE * __ptr64 __cdecl OUTLINE_LISTBOX::QueryDmDte(enum OUTLINE_LB_LEVEL,int)const  __ptr64
?QueryDmDte@OUTLINE_LISTBOX@@QEBAPEAVDM_DTE@@W4OUTLINE_LB_LEVEL@@H@Z
; public: class DMID_DTE * __ptr64 __cdecl SUBJECT_BITMAP_BLOCK::QueryDmDte(int,int,int) __ptr64
?QueryDmDte@SUBJECT_BITMAP_BLOCK@@QEAAPEAVDMID_DTE@@HHH@Z
; public: unsigned short const * __ptr64 __cdecl OLLB_ENTRY::QueryDomain(void)const  __ptr64
?QueryDomain@OLLB_ENTRY@@QEBAPEBGXZ
; public: unsigned int __cdecl BROWSE_DOMAIN_ENUM::QueryDomainCount(void) __ptr64
?QueryDomainCount@BROWSE_DOMAIN_ENUM@@QEAAIXZ
; public: long __cdecl LSA_TRANSLATED_NAME_MEM::QueryDomainIndex(unsigned long)const  __ptr64
?QueryDomainIndex@LSA_TRANSLATED_NAME_MEM@@QEBAJK@Z
; public: long __cdecl LSA_TRANSLATED_SID_MEM::QueryDomainIndex(unsigned long)const  __ptr64
?QueryDomainIndex@LSA_TRANSLATED_SID_MEM@@QEBAJK@Z
; public: unsigned short const * __ptr64 __cdecl BROWSER_DOMAIN::QueryDomainName(void)const  __ptr64
?QueryDomainName@BROWSER_DOMAIN@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl BROWSER_SUBJECT::QueryDomainName(void)const  __ptr64
?QueryDomainName@BROWSER_SUBJECT@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl BROWSE_DOMAIN_INFO::QueryDomainName(void)const  __ptr64
?QueryDomainName@BROWSE_DOMAIN_INFO@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl USER_BROWSER_LBI::QueryDomainName(void)const  __ptr64
?QueryDomainName@USER_BROWSER_LBI@@QEBAPEBGXZ
; public: class OS_SID const * __ptr64 __cdecl BROWSER_DOMAIN::QueryDomainSid(void)const  __ptr64
?QueryDomainSid@BROWSER_DOMAIN@@QEBAPEBVOS_SID@@XZ
; public: class OS_SID const * __ptr64 __cdecl BROWSER_SUBJECT::QueryDomainSid(void)const  __ptr64
?QueryDomainSid@BROWSER_SUBJECT@@QEBAPEBVOS_SID@@XZ
; protected: static unsigned short const * __ptr64 __cdecl CONTROL_WINDOW::QueryEditClassName(void)
?QueryEditClassName@CONTROL_WINDOW@@KAPEBGXZ
; public: struct _ULC_ENTRY_BASE * __ptr64 __cdecl USER_BROWSER_LBI_CACHE::QueryEntryPtr(int) __ptr64
?QueryEntryPtr@USER_BROWSER_LBI_CACHE@@QEAAPEAU_ULC_ENTRY_BASE@@H@Z
; public: long __cdecl ASSOCHWNDPDLG::QueryError(void)const  __ptr64
?QueryError@ASSOCHWNDPDLG@@QEBAJXZ
; public: long __cdecl ASSOCHWNDPWND::QueryError(void)const  __ptr64
?QueryError@ASSOCHWNDPWND@@QEBAJXZ
; public: long __cdecl BASE::QueryError(void)const  __ptr64
?QueryError@BASE@@QEBAJXZ
; public: long __cdecl CONTROL_WINDOW::QueryError(void)const  __ptr64
?QueryError@CONTROL_WINDOW@@QEBAJXZ
; public: long __cdecl FORWARDING_BASE::QueryError(void)const  __ptr64
?QueryError@FORWARDING_BASE@@QEBAJXZ
; public: long __cdecl SLT_ELLIPSIS::QueryError(void)const  __ptr64
?QueryError@SLT_ELLIPSIS@@QEBAJXZ
; protected: long __cdecl GET_FNAME_BASE_DLG::QueryErrorCode(void)const  __ptr64
?QueryErrorCode@GET_FNAME_BASE_DLG@@IEBAJXZ
; public: class USER_BROWSER_LBI * __ptr64 __cdecl USER_BROWSER_LB::QueryErrorLBI(void)const  __ptr64
?QueryErrorLBI@USER_BROWSER_LB@@QEBAPEAVUSER_BROWSER_LBI@@XZ
; public: long __cdecl BROWSER_DOMAIN::QueryErrorLoadingAuthority(void)const  __ptr64
?QueryErrorLoadingAuthority@BROWSER_DOMAIN@@QEBAJXZ
; public: long __cdecl DOMAIN_FILL_THREAD::QueryErrorLoadingAuthority(void)const  __ptr64
?QueryErrorLoadingAuthority@DOMAIN_FILL_THREAD@@QEBAJXZ
; protected: virtual unsigned int __cdecl ARROW_BUTTON::QueryEventEffects(class CONTROL_EVENT const & __ptr64) __ptr64
?QueryEventEffects@ARROW_BUTTON@@MEAAIAEBVCONTROL_EVENT@@@Z
; protected: virtual unsigned int __cdecl BUTTON_CONTROL::QueryEventEffects(class CONTROL_EVENT const & __ptr64) __ptr64
?QueryEventEffects@BUTTON_CONTROL@@MEAAIAEBVCONTROL_EVENT@@@Z
; protected: virtual unsigned int __cdecl COMBOBOX::QueryEventEffects(class CONTROL_EVENT const & __ptr64) __ptr64
?QueryEventEffects@COMBOBOX@@MEAAIAEBVCONTROL_EVENT@@@Z
; public: virtual unsigned int __cdecl CONTROL_VALUE::QueryEventEffects(class CONTROL_EVENT const & __ptr64) __ptr64
?QueryEventEffects@CONTROL_VALUE@@UEAAIAEBVCONTROL_EVENT@@@Z
; protected: virtual unsigned int __cdecl EDIT_CONTROL::QueryEventEffects(class CONTROL_EVENT const & __ptr64) __ptr64
?QueryEventEffects@EDIT_CONTROL@@MEAAIAEBVCONTROL_EVENT@@@Z
; protected: virtual unsigned int __cdecl LIST_CONTROL::QueryEventEffects(class CONTROL_EVENT const & __ptr64) __ptr64
?QueryEventEffects@LIST_CONTROL@@MEAAIAEBVCONTROL_EVENT@@@Z
; public: int __cdecl HIER_LBI::QueryExpanded(void)const  __ptr64
?QueryExpanded@HIER_LBI@@QEBAHXZ
; public: class SLIST_OF_UI_EXT * __ptr64 __cdecl UI_EXT_MGR::QueryExtensions(void) __ptr64
?QueryExtensions@UI_EXT_MGR@@QEAAPEAVSLIST_OF_UI_EXT@@XZ
; public: unsigned int __cdecl SET_OF_AUDIT_CATEGORIES::QueryFailedBaseCID(void) __ptr64
?QueryFailedBaseCID@SET_OF_AUDIT_CATEGORIES@@QEAAIXZ
; public: unsigned long __cdecl OPEN_LBI_BASE::QueryFileID(void)const  __ptr64
?QueryFileID@OPEN_LBI_BASE@@QEBAKXZ
; public: long __cdecl GET_FNAME_BASE_DLG::QueryFileTitle(class NLS_STR * __ptr64)const  __ptr64
?QueryFileTitle@GET_FNAME_BASE_DLG@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl GET_FNAME_BASE_DLG::QueryFilename(class NLS_STR * __ptr64)const  __ptr64
?QueryFilename@GET_FNAME_BASE_DLG@@QEBAJPEAVNLS_STR@@@Z
; protected: int __cdecl HEAP_BASE::QueryFirstLeaf(void)const  __ptr64
?QueryFirstLeaf@HEAP_BASE@@IEBAHXZ
; public: unsigned long __cdecl ACCOUNT_NAMES_MLE::QueryFlags(void)const  __ptr64
?QueryFlags@ACCOUNT_NAMES_MLE@@QEBAKXZ
; public: unsigned long __cdecl NT_USER_BROWSER_DIALOG::QueryFlags(void)const  __ptr64
?QueryFlags@NT_USER_BROWSER_DIALOG@@QEBAKXZ
; public: struct HFONT__ * __ptr64 __cdecl CONTROL_WINDOW::QueryFont(void)const  __ptr64
?QueryFont@CONTROL_WINDOW@@QEBAPEAUHFONT__@@XZ
; public: int __cdecl DEVICE_CONTEXT::QueryFontHeight(void)const  __ptr64
?QueryFontHeight@DEVICE_CONTEXT@@QEBAHXZ
; public: unsigned short const * __ptr64 __cdecl BROWSER_SUBJECT::QueryFullName(void)const  __ptr64
?QueryFullName@BROWSER_SUBJECT@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl USER_BROWSER_LBI::QueryFullName(void)const  __ptr64
?QueryFullName@USER_BROWSER_LBI@@QEBAPEBGXZ
; public: class CONTROL_GROUP * __ptr64 __cdecl CONTROL_VALUE::QueryGroup(void)const  __ptr64
?QueryGroup@CONTROL_VALUE@@QEBAPEAVCONTROL_GROUP@@XZ
; public: long __cdecl NT_GROUP_ENUM_OBJ::QueryGroup(class NLS_STR * __ptr64)const  __ptr64
?QueryGroup@NT_GROUP_ENUM_OBJ@@QEBAJPEAVNLS_STR@@@Z
; public: class CONTROL_GROUP * __ptr64 __cdecl SPIN_ITEM::QueryGroup(void) __ptr64
?QueryGroup@SPIN_ITEM@@QEAAPEAVCONTROL_GROUP@@XZ
; public: struct HACCEL__ * __ptr64 __cdecl ACCELTABLE::QueryHandle(void)const  __ptr64
?QueryHandle@ACCELTABLE@@QEBAPEAUHACCEL__@@XZ
; public: unsigned short __cdecl ATOM_BASE::QueryHandle(void)const  __ptr64
?QueryHandle@ATOM_BASE@@QEBAGXZ
; public: struct HBITMAP__ * __ptr64 __cdecl BIT_MAP::QueryHandle(void)const  __ptr64
?QueryHandle@BIT_MAP@@QEBAPEAUHBITMAP__@@XZ
; public: struct HFONT__ * __ptr64 __cdecl FONT::QueryHandle(void)const  __ptr64
?QueryHandle@FONT@@QEBAPEAUHFONT__@@XZ
; public: struct HMENU__ * __ptr64 __cdecl MENU_BASE::QueryHandle(void)const  __ptr64
?QueryHandle@MENU_BASE@@QEBAPEAUHMENU__@@XZ
; public: void * __ptr64 __cdecl SAM_OBJECT::QueryHandle(void)const  __ptr64
?QueryHandle@SAM_OBJECT@@QEBAPEAXXZ
; public: struct HBRUSH__ * __ptr64 __cdecl SOLID_BRUSH::QueryHandle(void)const  __ptr64
?QueryHandle@SOLID_BRUSH@@QEBAPEAUHBRUSH__@@XZ
; public: void * __ptr64 __cdecl WIN32_HANDLE::QueryHandle(void)const  __ptr64
?QueryHandle@WIN32_HANDLE@@QEBAPEAXXZ
; public: struct HDC__ * __ptr64 __cdecl DEVICE_CONTEXT::QueryHdc(void)const  __ptr64
?QueryHdc@DEVICE_CONTEXT@@QEBAPEAUHDC__@@XZ
; public: unsigned int __cdecl BIT_MAP::QueryHeight(void)const  __ptr64
?QueryHeight@BIT_MAP@@QEBAIXZ
; public: unsigned int __cdecl DISPLAY_MAP::QueryHeight(void)const  __ptr64
?QueryHeight@DISPLAY_MAP@@QEBAIXZ
; public: int __cdecl LB_COLUMN_HEADER::QueryHeight(void) __ptr64
?QueryHeight@LB_COLUMN_HEADER@@QEAAHXZ
; public: unsigned int __cdecl SIZE_EVENT::QueryHeight(void)const  __ptr64
?QueryHeight@SIZE_EVENT@@QEBAIXZ
; public: unsigned int __cdecl XYDIMENSION::QueryHeight(void)const  __ptr64
?QueryHeight@XYDIMENSION@@QEBAIXZ
; protected: virtual unsigned long __cdecl BASE_PASSWORD_DIALOG::QueryHelpContext(void) __ptr64
?QueryHelpContext@BASE_PASSWORD_DIALOG@@MEAAKXZ
; protected: virtual unsigned long __cdecl BASE_SET_FOCUS_DLG::QueryHelpContext(void) __ptr64
?QueryHelpContext@BASE_SET_FOCUS_DLG@@MEAAKXZ
; protected: virtual unsigned long __cdecl DIALOG_WINDOW::QueryHelpContext(void) __ptr64
?QueryHelpContext@DIALOG_WINDOW@@MEAAKXZ
; public: unsigned long __cdecl GET_FNAME_BASE_DLG::QueryHelpContext(void) __ptr64
?QueryHelpContext@GET_FNAME_BASE_DLG@@QEAAKXZ
; protected: virtual unsigned long __cdecl MSGPOPUP_DIALOG::QueryHelpContext(void) __ptr64
?QueryHelpContext@MSGPOPUP_DIALOG@@MEAAKXZ
; protected: virtual unsigned long __cdecl NT_FIND_ACCOUNT_DIALOG::QueryHelpContext(void) __ptr64
?QueryHelpContext@NT_FIND_ACCOUNT_DIALOG@@MEAAKXZ
; protected: virtual unsigned long __cdecl NT_GLOBALGROUP_BROWSER_DIALOG::QueryHelpContext(void) __ptr64
?QueryHelpContext@NT_GLOBALGROUP_BROWSER_DIALOG@@MEAAKXZ
; protected: virtual unsigned long __cdecl NT_LOCALGROUP_BROWSER_DIALOG::QueryHelpContext(void) __ptr64
?QueryHelpContext@NT_LOCALGROUP_BROWSER_DIALOG@@MEAAKXZ
; public: virtual unsigned long __cdecl NT_USER_BROWSER_DIALOG::QueryHelpContext(void) __ptr64
?QueryHelpContext@NT_USER_BROWSER_DIALOG@@UEAAKXZ
; protected: virtual unsigned long __cdecl OPEN_DIALOG_BASE::QueryHelpContext(void) __ptr64
?QueryHelpContext@OPEN_DIALOG_BASE@@MEAAKXZ
; protected: virtual unsigned long __cdecl PROMPT_FOR_ANY_DC_DLG::QueryHelpContext(void) __ptr64
?QueryHelpContext@PROMPT_FOR_ANY_DC_DLG@@MEAAKXZ
; public: unsigned long __cdecl NT_USER_BROWSER_DIALOG::QueryHelpContextGlobalMembership(void) __ptr64
?QueryHelpContextGlobalMembership@NT_USER_BROWSER_DIALOG@@QEAAKXZ
; public: unsigned long __cdecl NT_USER_BROWSER_DIALOG::QueryHelpContextLocalMembership(void) __ptr64
?QueryHelpContextLocalMembership@NT_USER_BROWSER_DIALOG@@QEAAKXZ
; public: unsigned long __cdecl NT_USER_BROWSER_DIALOG::QueryHelpContextSearch(void) __ptr64
?QueryHelpContextSearch@NT_USER_BROWSER_DIALOG@@QEAAKXZ
; public: unsigned short const * __ptr64 __cdecl ASSOCHCFILE::QueryHelpFile(void)const  __ptr64
?QueryHelpFile@ASSOCHCFILE@@QEBAPEBGXZ
; protected: virtual unsigned short const * __ptr64 __cdecl BASE_SET_FOCUS_DLG::QueryHelpFile(unsigned long) __ptr64
?QueryHelpFile@BASE_SET_FOCUS_DLG@@MEAAPEBGK@Z
; protected: virtual unsigned short const * __ptr64 __cdecl DIALOG_WINDOW::QueryHelpFile(unsigned long) __ptr64
?QueryHelpFile@DIALOG_WINDOW@@MEAAPEBGK@Z
; public: class NLS_STR * __ptr64 __cdecl GET_FNAME_BASE_DLG::QueryHelpFile(void) __ptr64
?QueryHelpFile@GET_FNAME_BASE_DLG@@QEAAPEAVNLS_STR@@XZ
; protected: virtual unsigned short const * __ptr64 __cdecl NT_FIND_ACCOUNT_DIALOG::QueryHelpFile(unsigned long) __ptr64
?QueryHelpFile@NT_FIND_ACCOUNT_DIALOG@@MEAAPEBGK@Z
; protected: virtual unsigned short const * __ptr64 __cdecl NT_GROUP_BROWSER_DIALOG::QueryHelpFile(unsigned long) __ptr64
?QueryHelpFile@NT_GROUP_BROWSER_DIALOG@@MEAAPEBGK@Z
; public: virtual unsigned short const * __ptr64 __cdecl NT_USER_BROWSER_DIALOG::QueryHelpFile(unsigned long) __ptr64
?QueryHelpFile@NT_USER_BROWSER_DIALOG@@UEAAPEBGK@Z
; public: unsigned int __cdecl QMOUSEACT_EVENT::QueryHitTest(void)const  __ptr64
?QueryHitTest@QMOUSEACT_EVENT@@QEBAIXZ
; public: unsigned int __cdecl LISTBOX::QueryHorizontalExtent(void)const  __ptr64
?QueryHorizontalExtent@LISTBOX@@QEBAIXZ
; public: int __cdecl BLT_TIME_SPIN_GROUP::QueryHour(void)const  __ptr64
?QueryHour@BLT_TIME_SPIN_GROUP@@QEBAHXZ
; public: int __cdecl WIN_TIME::QueryHour(void)const  __ptr64
?QueryHour@WIN_TIME@@QEBAHXZ
; public: long __cdecl LOGON_HOURS_CONTROL::QueryHours(class LOGON_HOURS_SETTING * __ptr64)const  __ptr64
?QueryHours@LOGON_HOURS_CONTROL@@QEBAJPEAVLOGON_HOURS_SETTING@@@Z
; public: struct HWND__ * __ptr64 __cdecl CONTROL_EVENT::QueryHwnd(void)const  __ptr64
?QueryHwnd@CONTROL_EVENT@@QEBAPEAUHWND__@@XZ
; public: struct HWND__ * __ptr64 __cdecl DISPATCHER::QueryHwnd(void)const  __ptr64
?QueryHwnd@DISPATCHER@@QEBAPEAUHWND__@@XZ
; protected: struct HWND__ * __ptr64 __cdecl DISPLAY_CONTEXT::QueryHwnd(void) __ptr64
?QueryHwnd@DISPLAY_CONTEXT@@IEAAPEAUHWND__@@XZ
; public: struct HWND__ * __ptr64 __cdecl DLGLOAD::QueryHwnd(void)const  __ptr64
?QueryHwnd@DLGLOAD@@QEBAPEAUHWND__@@XZ
; public: struct HWND__ * __ptr64 __cdecl OWNINGWND::QueryHwnd(void)const  __ptr64
?QueryHwnd@OWNINGWND@@QEBAPEAUHWND__@@XZ
; public: struct HWND__ * __ptr64 __cdecl PWND2HWND::QueryHwnd(void)const  __ptr64
?QueryHwnd@PWND2HWND@@QEBAPEAUHWND__@@XZ
; public: struct HWND__ * __ptr64 __cdecl WINDOW::QueryHwnd(void)const  __ptr64
?QueryHwnd@WINDOW@@QEBAPEAUHWND__@@XZ
; public: unsigned int __cdecl DISPLAY_MAP::QueryID(void)const  __ptr64
?QueryID@DISPLAY_MAP@@QEBAIXZ
; public: int __cdecl STRING_BITSET_PAIR::QueryID(void) __ptr64
?QueryID@STRING_BITSET_PAIR@@QEAAHXZ
; public: unsigned int __cdecl TIMER_BASE::QueryID(void)const  __ptr64
?QueryID@TIMER_BASE@@QEBAIXZ
; public: struct HICON__ * __ptr64 __cdecl APP_WINDOW::QueryIcon(void)const  __ptr64
?QueryIcon@APP_WINDOW@@QEBAPEAUHICON__@@XZ
; private: unsigned short const * __ptr64 __cdecl MSGPOPUP_DIALOG::QueryIcon(enum MSG_SEVERITY) __ptr64
?QueryIcon@MSGPOPUP_DIALOG@@AEAAPEBGW4MSG_SEVERITY@@@Z
; public: int __cdecl HIER_LBI::QueryIndentLevel(void) __ptr64
?QueryIndentLevel@HIER_LBI@@QEAAHXZ
; public: class SLE * __ptr64 __cdecl SLE_STRLB_GROUP::QueryInputSLE(void)const  __ptr64
?QueryInputSLE@SLE_STRLB_GROUP@@QEBAPEAVSLE@@XZ
; public: class XYRECT const & __ptr64 __cdecl PAINT_DISPLAY_CONTEXT::QueryInvalidRect(void)const  __ptr64
?QueryInvalidRect@PAINT_DISPLAY_CONTEXT@@QEBAAEBVXYRECT@@XZ
; public: class LBI * __ptr64 __cdecl BLT_LISTBOX::QueryItem(int)const  __ptr64
?QueryItem@BLT_LISTBOX@@QEBAPEAVLBI@@H@Z
; public: class LBI * __ptr64 __cdecl BLT_LISTBOX::QueryItem(void)const  __ptr64
?QueryItem@BLT_LISTBOX@@QEBAPEAVLBI@@XZ
; public: class CONTROL_ENTRY * __ptr64 __cdecl CONTROL_TABLE::QueryItem(unsigned int)const  __ptr64
?QueryItem@CONTROL_TABLE@@QEBAPEAVCONTROL_ENTRY@@I@Z
; public: class OPEN_LBI_BASE * __ptr64 __cdecl OPEN_LBOX_BASE::QueryItem(int)const  __ptr64
?QueryItem@OPEN_LBOX_BASE@@QEBAPEAVOPEN_LBI_BASE@@H@Z
; public: class OPEN_LBI_BASE * __ptr64 __cdecl OPEN_LBOX_BASE::QueryItem(void)const  __ptr64
?QueryItem@OPEN_LBOX_BASE@@QEBAPEAVOPEN_LBI_BASE@@XZ
; public: class OLLB_ENTRY * __ptr64 __cdecl OUTLINE_LISTBOX::QueryItem(int)const  __ptr64
?QueryItem@OUTLINE_LISTBOX@@QEBAPEAVOLLB_ENTRY@@H@Z
; public: class OLLB_ENTRY * __ptr64 __cdecl OUTLINE_LISTBOX::QueryItem(void)const  __ptr64
?QueryItem@OUTLINE_LISTBOX@@QEBAPEAVOLLB_ENTRY@@XZ
; public: class STLBITEM * __ptr64 __cdecl STATELB::QueryItem(void)const  __ptr64
?QueryItem@STATELB@@QEBAPEAVSTLBITEM@@XZ
; public: class USER_BROWSER_LBI * __ptr64 __cdecl USER_BROWSER_LB::QueryItem(int)const  __ptr64
?QueryItem@USER_BROWSER_LB@@QEBAPEAVUSER_BROWSER_LBI@@H@Z
; public: class USER_BROWSER_LBI * __ptr64 __cdecl USER_BROWSER_LB::QueryItem(void)const  __ptr64
?QueryItem@USER_BROWSER_LB@@QEBAPEAVUSER_BROWSER_LBI@@XZ
; public: virtual class LBI * __ptr64 __cdecl USER_LBI_CACHE::QueryItem(int) __ptr64
?QueryItem@USER_LBI_CACHE@@UEAAPEAVLBI@@H@Z
; public: int __cdecl MENU_BASE::QueryItemCount(void)const  __ptr64
?QueryItemCount@MENU_BASE@@QEBAHXZ
; public: unsigned int __cdecl LIST_CONTROL::QueryItemHeight(unsigned int)const  __ptr64
?QueryItemHeight@LIST_CONTROL@@QEBAII@Z
; public: unsigned int __cdecl MENU_BASE::QueryItemID(int)const  __ptr64
?QueryItemID@MENU_BASE@@QEBAIH@Z
; public: int __cdecl STRING_LIST_CONTROL::QueryItemLength(int)const  __ptr64
?QueryItemLength@STRING_LIST_CONTROL@@QEBAHH@Z
; public: int __cdecl STRING_LIST_CONTROL::QueryItemSize(int)const  __ptr64
?QueryItemSize@STRING_LIST_CONTROL@@QEBAHH@Z
; public: unsigned int __cdecl MENU_BASE::QueryItemState(unsigned int,unsigned int)const  __ptr64
?QueryItemState@MENU_BASE@@QEBAIII@Z
; public: long __cdecl MENU_BASE::QueryItemText(unsigned short * __ptr64,unsigned int,unsigned int,unsigned int)const  __ptr64
?QueryItemText@MENU_BASE@@QEBAJPEAGIII@Z
; public: long __cdecl MENU_BASE::QueryItemText(class NLS_STR * __ptr64,unsigned int,unsigned int)const  __ptr64
?QueryItemText@MENU_BASE@@QEBAJPEAVNLS_STR@@II@Z
; public: long __cdecl STRING_LIST_CONTROL::QueryItemText(unsigned short * __ptr64,int,int)const  __ptr64
?QueryItemText@STRING_LIST_CONTROL@@QEBAJPEAGHH@Z
; public: long __cdecl STRING_LIST_CONTROL::QueryItemText(class NLS_STR * __ptr64)const  __ptr64
?QueryItemText@STRING_LIST_CONTROL@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl STRING_LIST_CONTROL::QueryItemText(class NLS_STR * __ptr64,int)const  __ptr64
?QueryItemText@STRING_LIST_CONTROL@@QEBAJPEAVNLS_STR@@H@Z
; private: long __cdecl STRING_LIST_CONTROL::QueryItemTextAux(unsigned short * __ptr64,int)const  __ptr64
?QueryItemTextAux@STRING_LIST_CONTROL@@AEBAJPEAGH@Z
; private: int __cdecl HIER_LBI::QueryLBIndex(void) __ptr64
?QueryLBIndex@HIER_LBI@@AEAAHXZ
; public: __int64 __cdecl EVENT::QueryLParam(void)const  __ptr64
?QueryLParam@EVENT@@QEBA_JXZ
; public: class LSA_POLICY * __ptr64 __cdecl BROWSER_DOMAIN::QueryLSAPolicy(void)const  __ptr64
?QueryLSAPolicy@BROWSER_DOMAIN@@QEBAPEAVLSA_POLICY@@XZ
; public: class STATELB * __ptr64 __cdecl STATELBGRP::QueryLb(void) __ptr64
?QueryLb@STATELBGRP@@QEAAPEAVSTATELB@@XZ
; public: virtual unsigned short __cdecl BROWSER_DOMAIN_LBI::QueryLeadingChar(void)const  __ptr64
?QueryLeadingChar@BROWSER_DOMAIN_LBI@@UEBAGXZ
; public: virtual unsigned short __cdecl BROWSER_DOMAIN_LBI_PB::QueryLeadingChar(void)const  __ptr64
?QueryLeadingChar@BROWSER_DOMAIN_LBI_PB@@UEBAGXZ
; public: virtual unsigned short __cdecl LBI::QueryLeadingChar(void)const  __ptr64
?QueryLeadingChar@LBI@@UEBAGXZ
; public: virtual unsigned short __cdecl OLLB_ENTRY::QueryLeadingChar(void)const  __ptr64
?QueryLeadingChar@OLLB_ENTRY@@UEBAGXZ
; protected: virtual unsigned short __cdecl OPEN_LBI_BASE::QueryLeadingChar(void)const  __ptr64
?QueryLeadingChar@OPEN_LBI_BASE@@MEBAGXZ
; protected: virtual unsigned short __cdecl STLBITEM::QueryLeadingChar(void)const  __ptr64
?QueryLeadingChar@STLBITEM@@MEBAGXZ
; public: virtual unsigned short __cdecl USER_BROWSER_LBI::QueryLeadingChar(void)const  __ptr64
?QueryLeadingChar@USER_BROWSER_LBI@@UEBAGXZ
; public: int __cdecl XYRECT::QueryLeft(void)const  __ptr64
?QueryLeft@XYRECT@@QEBAHXZ
; protected: int __cdecl HEAP_BASE::QueryLeftChild(int)const  __ptr64
?QueryLeftChild@HEAP_BASE@@IEBAHH@Z
; public: virtual unsigned int __cdecl DTE::QueryLeftMargin(void)const  __ptr64
?QueryLeftMargin@DTE@@UEBAIXZ
; public: virtual unsigned int __cdecl METALLIC_STR_DTE::QueryLeftMargin(void)const  __ptr64
?QueryLeftMargin@METALLIC_STR_DTE@@UEBAIXZ
; public: int __cdecl OLLB_ENTRY::QueryLevel(void)const  __ptr64
?QueryLevel@OLLB_ENTRY@@QEBAHXZ
; public: unsigned long __cdecl CHANGEABLE_SPIN_ITEM::QueryLimit(void)const  __ptr64
?QueryLimit@CHANGEABLE_SPIN_ITEM@@QEBAKXZ
; protected: virtual int __cdecl CONSOLE_ELLIPSIS::QueryLimit(void) __ptr64
?QueryLimit@CONSOLE_ELLIPSIS@@MEAAHXZ
; protected: virtual int __cdecl WIN_ELLIPSIS::QueryLimit(void) __ptr64
?QueryLimit@WIN_ELLIPSIS@@MEAAHXZ
; protected: static unsigned short const * __ptr64 __cdecl CONTROL_WINDOW::QueryListboxClassName(void)
?QueryListboxClassName@CONTROL_WINDOW@@KAPEBGXZ
; long __cdecl QueryLoggedOnDomainInfo(class NLS_STR * __ptr64,class NLS_STR * __ptr64)
?QueryLoggedOnDomainInfo@@YAJPEAVNLS_STR@@0@Z
; public: unsigned short const * __ptr64 __cdecl BROWSER_DOMAIN::QueryLsaLookupName(void)const  __ptr64
?QueryLsaLookupName@BROWSER_DOMAIN@@QEBAPEBGXZ
; public: struct HBITMAP__ * __ptr64 __cdecl GRAPHICAL_BUTTON_WITH_DISABLE::QueryMain(void)const  __ptr64
?QueryMain@GRAPHICAL_BUTTON_WITH_DISABLE@@QEBAPEAUHBITMAP__@@XZ
; public: struct HBITMAP__ * __ptr64 __cdecl GRAPHICAL_BUTTON_WITH_DISABLE::QueryMainInvert(void)const  __ptr64
?QueryMainInvert@GRAPHICAL_BUTTON_WITH_DISABLE@@QEBAPEAUHBITMAP__@@XZ
; public: class DISPLAY_MAP * __ptr64 const * __ptr64 __cdecl STATELB::QueryMapArray(void)const  __ptr64
?QueryMapArray@STATELB@@QEBAPEBQEAVDISPLAY_MAP@@XZ
; public: int __cdecl STATELB::QueryMapCount(void)const  __ptr64
?QueryMapCount@STATELB@@QEBAHXZ
; public: class BITFIELD * __ptr64 __cdecl AUDIT_CHECKBOXES::QueryMask(void) __ptr64
?QueryMask@AUDIT_CHECKBOXES@@QEAAPEAVBITFIELD@@XZ
; public: struct HBITMAP__ * __ptr64 __cdecl DISPLAY_MAP::QueryMaskHandle(void)const  __ptr64
?QueryMaskHandle@DISPLAY_MAP@@QEBAPEAUHBITMAP__@@XZ
; public: static long __cdecl BLT_MASTER_TIMER::QueryMasterTimer(class BLT_MASTER_TIMER * __ptr64 * __ptr64)
?QueryMasterTimer@BLT_MASTER_TIMER@@SAJPEAPEAV1@@Z
; public: unsigned long __cdecl CHANGEABLE_SPIN_ITEM::QueryMax(void)const  __ptr64
?QueryMax@CHANGEABLE_SPIN_ITEM@@QEBAKXZ
; public: unsigned int __cdecl SCROLLBAR::QueryMax(void)const  __ptr64
?QueryMax@SCROLLBAR@@QEBAIXZ
; protected: virtual int __cdecl CONSOLE_ELLIPSIS::QueryMaxCharWidth(void) __ptr64
?QueryMaxCharWidth@CONSOLE_ELLIPSIS@@MEAAHXZ
; protected: virtual int __cdecl WIN_ELLIPSIS::QueryMaxCharWidth(void) __ptr64
?QueryMaxCharWidth@WIN_ELLIPSIS@@MEAAHXZ
; public: struct HMENU__ * __ptr64 __cdecl APP_WINDOW::QueryMenu(void)const  __ptr64
?QueryMenu@APP_WINDOW@@QEBAPEAUHMENU__@@XZ
; public: struct HMENU__ * __ptr64 __cdecl UI_MENU_EXT::QueryMenuHandle(void)const  __ptr64
?QueryMenuHandle@UI_MENU_EXT@@QEBAPEAUHMENU__@@XZ
; public: unsigned int __cdecl EVENT::QueryMessage(void)const  __ptr64
?QueryMessage@EVENT@@QEBAIXZ
; public: int __cdecl BLT_TIME_SPIN_GROUP::QueryMin(void)const  __ptr64
?QueryMin@BLT_TIME_SPIN_GROUP@@QEBAHXZ
; public: unsigned long __cdecl CHANGEABLE_SPIN_ITEM::QueryMin(void)const  __ptr64
?QueryMin@CHANGEABLE_SPIN_ITEM@@QEBAKXZ
; public: unsigned int __cdecl SCROLLBAR::QueryMin(void)const  __ptr64
?QueryMin@SCROLLBAR@@QEBAIXZ
; public: int __cdecl WIN_TIME::QueryMinute(void)const  __ptr64
?QueryMinute@WIN_TIME@@QEBAHXZ
; public: long __cdecl ELAPSED_TIME_CONTROL::QueryMinuteValue(void)const  __ptr64
?QueryMinuteValue@ELAPSED_TIME_CONTROL@@QEBAJXZ
; public: struct HINSTANCE__ * __ptr64 __cdecl ASSOCHCFILE::QueryModule(void)const  __ptr64
?QueryModule@ASSOCHCFILE@@QEBAPEAUHINSTANCE__@@XZ
; public: int __cdecl BLT_DATE_SPIN_GROUP::QueryMonth(void)const  __ptr64
?QueryMonth@BLT_DATE_SPIN_GROUP@@QEBAHXZ
; public: int __cdecl WIN_TIME::QueryMonth(void)const  __ptr64
?QueryMonth@WIN_TIME@@QEBAHXZ
; public: int __cdecl INTL_PROFILE::QueryMonthPos(void)const  __ptr64
?QueryMonthPos@INTL_PROFILE@@QEBAHXZ
; public: long __cdecl LSA_PRIMARY_DOM_INFO_MEM::QueryName(class NLS_STR * __ptr64)const  __ptr64
?QueryName@LSA_PRIMARY_DOM_INFO_MEM@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl LSA_REF_DOMAIN_MEM::QueryName(unsigned long,class NLS_STR * __ptr64)const  __ptr64
?QueryName@LSA_REF_DOMAIN_MEM@@QEBAJKPEAVNLS_STR@@@Z
; public: long __cdecl LSA_TRANSLATED_NAME_MEM::QueryName(unsigned long,class NLS_STR * __ptr64)const  __ptr64
?QueryName@LSA_TRANSLATED_NAME_MEM@@QEBAJKPEAVNLS_STR@@@Z
; public: long __cdecl LSA_TRUST_INFO_MEM::QueryName(unsigned long,class NLS_STR * __ptr64)const  __ptr64
?QueryName@LSA_TRUST_INFO_MEM@@QEBAJKPEAVNLS_STR@@@Z
; public: long __cdecl SAM_RID_ENUMERATION_MEM::QueryName(unsigned long,class NLS_STR * __ptr64)const  __ptr64
?QueryName@SAM_RID_ENUMERATION_MEM@@QEBAJKPEAVNLS_STR@@@Z
; public: unsigned short const * __ptr64 __cdecl SERVER1_ENUM_OBJ::QueryName(void)const  __ptr64
?QueryName@SERVER1_ENUM_OBJ@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl UI_DOMAIN::QueryName(void)const  __ptr64
?QueryName@UI_DOMAIN@@QEBAPEBGXZ
; protected: struct tagOFNW * __ptr64 __cdecl GET_FNAME_BASE_DLG::QueryOFN(void) __ptr64
?QueryOFN@GET_FNAME_BASE_DLG@@IEAAPEAUtagOFNW@@XZ
; public: class OS_SID const * __ptr64 __cdecl SAM_DOMAIN::QueryOSSID(void)const  __ptr64
?QueryOSSID@SAM_DOMAIN@@QEBAPEBVOS_SID@@XZ
; public: class OS_SID const * __ptr64 __cdecl USER_BROWSER_LBI::QueryOSSID(void)const  __ptr64
?QueryOSSID@USER_BROWSER_LBI@@QEBAPEBVOS_SID@@XZ
; protected: virtual long __cdecl CANCEL_TASK_DIALOG::QueryObjectName(class NLS_STR * __ptr64) __ptr64
?QueryObjectName@CANCEL_TASK_DIALOG@@MEAAJPEAVNLS_STR@@@Z
; public: class NLS_STR  __cdecl BASE_ELLIPSIS::QueryOriginalStr(void)const  __ptr64
?QueryOriginalStr@BASE_ELLIPSIS@@QEBA?AVNLS_STR@@XZ
; public: struct HWND__ * __ptr64 __cdecl WINDOW::QueryOwnerHwnd(void)const  __ptr64
?QueryOwnerHwnd@WINDOW@@QEBAPEAUHWND__@@XZ
; public: class OWNER_WINDOW * __ptr64 __cdecl SET_OF_AUDIT_CATEGORIES::QueryOwnerWindow(void) __ptr64
?QueryOwnerWindow@SET_OF_AUDIT_CATEGORIES@@QEAAPEAVOWNER_WINDOW@@XZ
; public: unsigned short const * __ptr64 __cdecl UI_DOMAIN::QueryPDC(void)const  __ptr64
?QueryPDC@UI_DOMAIN@@QEBAPEBGXZ
; public: void * __ptr64 __cdecl LSA_ACCT_DOM_INFO_MEM::QueryPSID(void)const  __ptr64
?QueryPSID@LSA_ACCT_DOM_INFO_MEM@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl LSA_PRIMARY_DOM_INFO_MEM::QueryPSID(void)const  __ptr64
?QueryPSID@LSA_PRIMARY_DOM_INFO_MEM@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl LSA_REF_DOMAIN_MEM::QueryPSID(unsigned long)const  __ptr64
?QueryPSID@LSA_REF_DOMAIN_MEM@@QEBAPEAXK@Z
; public: void * __ptr64 __cdecl LSA_TRUST_INFO_MEM::QueryPSID(unsigned long)const  __ptr64
?QueryPSID@LSA_TRUST_INFO_MEM@@QEBAPEAXK@Z
; public: void * __ptr64 __cdecl OS_SID::QueryPSID(void)const  __ptr64
?QueryPSID@OS_SID@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl SAM_DOMAIN::QueryPSID(void)const  __ptr64
?QueryPSID@SAM_DOMAIN@@QEBAPEAXXZ
; public: void * __ptr64 __cdecl USER_BROWSER_LBI::QueryPSID(void)const  __ptr64
?QueryPSID@USER_BROWSER_LBI@@QEBAQEAXXZ
; protected: int __cdecl HEAP_BASE::QueryParent(int)const  __ptr64
?QueryParent@HEAP_BASE@@IEBAHH@Z
; public: long __cdecl BASE_PASSWORD_DIALOG::QueryPassword(class NLS_STR * __ptr64) __ptr64
?QueryPassword@BASE_PASSWORD_DIALOG@@QEAAJPEAVNLS_STR@@@Z
; public: unsigned short const * __ptr64 __cdecl OPEN_LBI_BASE::QueryPath(void)const  __ptr64
?QueryPath@OPEN_LBI_BASE@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NLS_STR::QueryPch(void)const  __ptr64
?QueryPch@NLS_STR@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl STR_DTE::QueryPch(void)const  __ptr64
?QueryPch@STR_DTE@@QEBAPEBGXZ
; public: unsigned long __cdecl OPEN_LBI_BASE::QueryPermissions(void)const  __ptr64
?QueryPermissions@OPEN_LBI_BASE@@QEBAKXZ
; public: struct tagPOINT  __cdecl XYPOINT::QueryPoint(void)const  __ptr64
?QueryPoint@XYPOINT@@QEBA?AUtagPOINT@@XZ
; public: static class XYPOINT  __cdecl CURSOR::QueryPos(void)
?QueryPos@CURSOR@@SA?AVXYPOINT@@XZ
; public: class XYPOINT  __cdecl MOUSE_EVENT::QueryPos(void)const  __ptr64
?QueryPos@MOUSE_EVENT@@QEBA?AVXYPOINT@@XZ
; public: unsigned int __cdecl SCROLLBAR::QueryPos(void)const  __ptr64
?QueryPos@SCROLLBAR@@QEBAIXZ
; public: class XYPOINT  __cdecl SPIN_GROUP::QueryPos(void) __ptr64
?QueryPos@SPIN_GROUP@@QEAA?AVXYPOINT@@XZ
; public: class XYPOINT  __cdecl WINDOW::QueryPos(void)const  __ptr64
?QueryPos@WINDOW@@QEBA?AVXYPOINT@@XZ
; public: int __cdecl WIN32_THREAD::QueryPriority(void) __ptr64
?QueryPriority@WIN32_THREAD@@QEAAHXZ
; public: unsigned __int64 __cdecl PROC_INSTANCE::QueryProc(void)const  __ptr64
?QueryProc@PROC_INSTANCE@@QEBA_KXZ
; public: class NLS_STR * __ptr64 __cdecl ITER_SL_NLS_STR::QueryProp(void) __ptr64
?QueryProp@ITER_SL_NLS_STR@@QEAAPEAVNLS_STR@@XZ
; public: class USER_BROWSER_LBI * __ptr64 __cdecl ITER_SL_USER_BROWSER_LBI::QueryProp(void) __ptr64
?QueryProp@ITER_SL_USER_BROWSER_LBI@@QEAAPEAVUSER_BROWSER_LBI@@XZ
; public: unsigned short const * __ptr64 __cdecl IDRESOURCE::QueryPsz(void)const  __ptr64
?QueryPsz@IDRESOURCE@@QEBAPEBGXZ
; public: unsigned char * __ptr64 __cdecl BLT_SCRATCH::QueryPtr(void)const  __ptr64
?QueryPtr@BLT_SCRATCH@@QEBAPEAEXZ
; public: struct _POLICY_ACCOUNT_DOMAIN_INFO const * __ptr64 __cdecl LSA_ACCT_DOM_INFO_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_ACCT_DOM_INFO_MEM@@QEBAPEBU_POLICY_ACCOUNT_DOMAIN_INFO@@XZ
; public: struct _POLICY_PRIMARY_DOMAIN_INFO const * __ptr64 __cdecl LSA_PRIMARY_DOM_INFO_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_PRIMARY_DOM_INFO_MEM@@QEBAPEBU_POLICY_PRIMARY_DOMAIN_INFO@@XZ
; private: struct _LSA_TRUST_INFORMATION const * __ptr64 __cdecl LSA_REF_DOMAIN_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_REF_DOMAIN_MEM@@AEBAPEBU_LSA_TRUST_INFORMATION@@XZ
; private: struct _LSA_TRANSLATED_NAME const * __ptr64 __cdecl LSA_TRANSLATED_NAME_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_TRANSLATED_NAME_MEM@@AEBAPEBU_LSA_TRANSLATED_NAME@@XZ
; private: struct _LSA_TRANSLATED_SID const * __ptr64 __cdecl LSA_TRANSLATED_SID_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_TRANSLATED_SID_MEM@@AEBAPEBU_LSA_TRANSLATED_SID@@XZ
; public: struct _LSA_TRUST_INFORMATION const * __ptr64 __cdecl LSA_TRUST_INFO_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@LSA_TRUST_INFO_MEM@@QEBAPEBU_LSA_TRUST_INFORMATION@@XZ
; public: struct _SAM_RID_ENUMERATION const * __ptr64 __cdecl SAM_RID_ENUMERATION_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@SAM_RID_ENUMERATION_MEM@@QEBAPEBU_SAM_RID_ENUMERATION@@XZ
; private: unsigned long const * __ptr64 __cdecl SAM_RID_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@SAM_RID_MEM@@AEBAPEBKXZ
; public: void * __ptr64 * __ptr64 __cdecl SAM_SID_MEM::QueryPtr(void)const  __ptr64
?QueryPtr@SAM_SID_MEM@@QEBAPEAPEAXXZ
; public: long __cdecl BROWSER_SUBJECT::QueryQualifiedName(class NLS_STR * __ptr64,class NLS_STR const * __ptr64,int)const  __ptr64
?QueryQualifiedName@BROWSER_SUBJECT@@QEBAJPEAVNLS_STR@@PEBV2@H@Z
; public: unsigned int __cdecl CONTROLVAL_CID_PAIR::QueryRBCID(void)const  __ptr64
?QueryRBCID@CONTROLVAL_CID_PAIR@@QEBAIXZ
; public: unsigned long __cdecl LSA_TRANSLATED_SID_MEM::QueryRID(unsigned long)const  __ptr64
?QueryRID@LSA_TRANSLATED_SID_MEM@@QEBAKK@Z
; public: unsigned int __cdecl NT_GROUP_ENUM_OBJ::QueryRID(void)const  __ptr64
?QueryRID@NT_GROUP_ENUM_OBJ@@QEBAIXZ
; public: unsigned long __cdecl SAM_RID_ENUMERATION_MEM::QueryRID(unsigned long)const  __ptr64
?QueryRID@SAM_RID_ENUMERATION_MEM@@QEBAKK@Z
; public: unsigned long __cdecl SAM_RID_MEM::QueryRID(unsigned long)const  __ptr64
?QueryRID@SAM_RID_MEM@@QEBAKK@Z
; public: unsigned long __cdecl CHANGEABLE_SPIN_ITEM::QueryRange(void)const  __ptr64
?QueryRange@CHANGEABLE_SPIN_ITEM@@QEBAKXZ
; protected: class PUSH_BUTTON * __ptr64 __cdecl SLE_STRLB_GROUP::QueryRemoveButton(void)const  __ptr64
?QueryRemoveButton@SLE_STRLB_GROUP@@IEBAPEAVPUSH_BUTTON@@XZ
; public: unsigned int __cdecl KEY_EVENT::QueryRepeat(void)const  __ptr64
?QueryRepeat@KEY_EVENT@@QEBAIXZ
; public: int __cdecl XYRECT::QueryRight(void)const  __ptr64
?QueryRight@XYRECT@@QEBAHXZ
; protected: int __cdecl HEAP_BASE::QueryRightSibling(int)const  __ptr64
?QueryRightSibling@HEAP_BASE@@IEBAHH@Z
; public: virtual struct HWND__ * __ptr64 __cdecl CLIENT_WINDOW::QueryRobustHwnd(void)const  __ptr64
?QueryRobustHwnd@CLIENT_WINDOW@@UEBAPEAUHWND__@@XZ
; public: virtual struct HWND__ * __ptr64 __cdecl DIALOG_WINDOW::QueryRobustHwnd(void)const  __ptr64
?QueryRobustHwnd@DIALOG_WINDOW@@UEBAPEAUHWND__@@XZ
; public: virtual struct HWND__ * __ptr64 __cdecl DISPATCHER::QueryRobustHwnd(void)const  __ptr64
?QueryRobustHwnd@DISPATCHER@@UEBAPEAUHWND__@@XZ
; public: unsigned int __cdecl SET_OF_AUDIT_CATEGORIES::QuerySLTBaseCID(void) __ptr64
?QuerySLTBaseCID@SET_OF_AUDIT_CATEGORIES@@QEAAIXZ
; public: unsigned int __cdecl LISTBOX::QueryScrollPos(void)const  __ptr64
?QueryScrollPos@LISTBOX@@QEBAIXZ
; public: int __cdecl BLT_TIME_SPIN_GROUP::QuerySec(void)const  __ptr64
?QuerySec@BLT_TIME_SPIN_GROUP@@QEBAHXZ
; public: int __cdecl WIN_TIME::QuerySecond(void)const  __ptr64
?QuerySecond@WIN_TIME@@QEBAHXZ
; public: long __cdecl ELAPSED_TIME_CONTROL::QuerySecondValue(void)const  __ptr64
?QuerySecondValue@ELAPSED_TIME_CONTROL@@QEBAJXZ
; public: int __cdecl LIST_CONTROL::QuerySelCount(void)const  __ptr64
?QuerySelCount@LIST_CONTROL@@QEBAHXZ
; public: long __cdecl LIST_CONTROL::QuerySelItems(int * __ptr64,int)const  __ptr64
?QuerySelItems@LIST_CONTROL@@QEBAJPEAHH@Z
; public: int __cdecl GRAPHICAL_BUTTON_WITH_DISABLE::QuerySelected(void)const  __ptr64
?QuerySelected@GRAPHICAL_BUTTON_WITH_DISABLE@@QEBAHXZ
; public: unsigned int __cdecl MAGIC_GROUP::QuerySelection(void)const  __ptr64
?QuerySelection@MAGIC_GROUP@@QEBAIXZ
; public: unsigned int __cdecl RADIO_GROUP::QuerySelection(void)const  __ptr64
?QuerySelection@RADIO_GROUP@@QEBAIXZ
; public: class SLIST_OF_USER_BROWSER_LBI * __ptr64 __cdecl NT_USER_BROWSER_DIALOG::QuerySelectionCache(void) __ptr64
?QuerySelectionCache@NT_USER_BROWSER_DIALOG@@QEAAPEAVSLIST_OF_USER_BROWSER_LBI@@XZ
; public: class SLIST_OF_USER_BROWSER_LBI * __ptr64 __cdecl NT_USER_BROWSER_DIALOG::QuerySelectionList(void) __ptr64
?QuerySelectionList@NT_USER_BROWSER_DIALOG@@QEAAPEAVSLIST_OF_USER_BROWSER_LBI@@XZ
; public: unsigned short const * __ptr64 __cdecl ADMIN_AUTHORITY::QueryServer(void)const  __ptr64
?QueryServer@ADMIN_AUTHORITY@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl OLLB_ENTRY::QueryServer(void)const  __ptr64
?QueryServer@OLLB_ENTRY@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl OPEN_DIALOG_BASE::QueryServer(void)const  __ptr64
?QueryServer@OPEN_DIALOG_BASE@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NT_USER_BROWSER_DIALOG::QueryServerResourceLivesOn(void)const  __ptr64
?QueryServerResourceLivesOn@NT_USER_BROWSER_DIALOG@@QEBAPEBGXZ
; public: class OS_SID const * __ptr64 __cdecl BROWSER_SUBJECT::QuerySid(void)const  __ptr64
?QuerySid@BROWSER_SUBJECT@@QEBAPEBVOS_SID@@XZ
; public: void * __ptr64 __cdecl OS_SID::QuerySid(void)const  __ptr64
?QuerySid@OS_SID@@QEBAPEAXXZ
; public: unsigned int __cdecl BLT_LISTBOX::QuerySingleLineHeight(void) __ptr64
?QuerySingleLineHeight@BLT_LISTBOX@@QEAAIXZ
; public: unsigned int __cdecl BLT_SCRATCH::QuerySize(void)const  __ptr64
?QuerySize@BLT_SCRATCH@@QEBAIXZ
; public: class XYDIMENSION  __cdecl SPIN_GROUP::QuerySize(void) __ptr64
?QuerySize@SPIN_GROUP@@QEAA?AVXYDIMENSION@@XZ
; public: class XYDIMENSION  __cdecl WINDOW::QuerySize(void)const  __ptr64
?QuerySize@WINDOW@@QEBA?AVXYDIMENSION@@XZ
; public: void __cdecl WINDOW::QuerySize(int * __ptr64,int * __ptr64)const  __ptr64
?QuerySize@WINDOW@@QEBAXPEAH0@Z
; public: virtual unsigned long __cdecl CHANGEABLE_SPIN_ITEM::QuerySmallDecValue(void)const  __ptr64
?QuerySmallDecValue@CHANGEABLE_SPIN_ITEM@@UEBAKXZ
; public: virtual unsigned long __cdecl SPIN_SLE_VALID_SECOND::QuerySmallDecValue(void)const  __ptr64
?QuerySmallDecValue@SPIN_SLE_VALID_SECOND@@UEBAKXZ
; public: virtual unsigned long __cdecl CHANGEABLE_SPIN_ITEM::QuerySmallIncValue(void)const  __ptr64
?QuerySmallIncValue@CHANGEABLE_SPIN_ITEM@@UEBAKXZ
; public: virtual unsigned long __cdecl SPIN_SLE_VALID_SECOND::QuerySmallIncValue(void)const  __ptr64
?QuerySmallIncValue@SPIN_SLE_VALID_SECOND@@UEBAKXZ
; protected: class NT_GROUP_BROWSER_DIALOG * __ptr64 __cdecl NT_GROUP_BROWSER_DIALOG::QuerySourceDialog(void) __ptr64
?QuerySourceDialog@NT_GROUP_BROWSER_DIALOG@@IEAAPEAV1@XZ
; public: class USER_BROWSER_LB * __ptr64 __cdecl NT_FIND_ACCOUNT_DIALOG::QuerySourceListbox(void) __ptr64
?QuerySourceListbox@NT_FIND_ACCOUNT_DIALOG@@QEAAPEAVUSER_BROWSER_LB@@XZ
; public: class USER_BROWSER_LB * __ptr64 __cdecl NT_GROUP_BROWSER_DIALOG::QuerySourceListbox(void) __ptr64
?QuerySourceListbox@NT_GROUP_BROWSER_DIALOG@@QEAAPEAVUSER_BROWSER_LB@@XZ
; protected: unsigned int __cdecl STATE_BUTTON_CONTROL::QueryState(void)const  __ptr64
?QueryState@STATE_BUTTON_CONTROL@@IEBAIXZ
; public: int __cdecl STLBITEM::QueryState(void)const  __ptr64
?QueryState@STLBITEM@@QEBAHXZ
; private: enum _THREAD_STATE  __cdecl WIN32_THREAD::QueryState(void)const  __ptr64
?QueryState@WIN32_THREAD@@AEBA?AW4_THREAD_STATE@@XZ
; protected: static unsigned short const * __ptr64 __cdecl CONTROL_WINDOW::QueryStaticClassName(void)
?QueryStaticClassName@CONTROL_WINDOW@@KAPEBGXZ
; public: class STRING_LISTBOX * __ptr64 __cdecl SLE_STRLB_GROUP::QueryStrLB(void)const  __ptr64
?QueryStrLB@SLE_STRLB_GROUP@@QEBAPEAVSTRING_LISTBOX@@XZ
; protected: virtual int __cdecl CONSOLE_ELLIPSIS::QueryStrLen(unsigned short const * __ptr64,int) __ptr64
?QueryStrLen@CONSOLE_ELLIPSIS@@MEAAHPEBGH@Z
; protected: virtual int __cdecl CONSOLE_ELLIPSIS::QueryStrLen(class NLS_STR) __ptr64
?QueryStrLen@CONSOLE_ELLIPSIS@@MEAAHVNLS_STR@@@Z
; protected: virtual int __cdecl WIN_ELLIPSIS::QueryStrLen(unsigned short const * __ptr64,int) __ptr64
?QueryStrLen@WIN_ELLIPSIS@@MEAAHPEBGH@Z
; protected: virtual int __cdecl WIN_ELLIPSIS::QueryStrLen(class NLS_STR) __ptr64
?QueryStrLen@WIN_ELLIPSIS@@MEAAHVNLS_STR@@@Z
; private: long __cdecl SPIN_SLE_STR::QueryStrNum(class NLS_STR const & __ptr64,long) __ptr64
?QueryStrNum@SPIN_SLE_STR@@AEAAJAEBVNLS_STR@@J@Z
; public: long __cdecl ATOM_BASE::QueryString(unsigned short * __ptr64,unsigned int)const  __ptr64
?QueryString@ATOM_BASE@@QEBAJPEAGI@Z
; public: class NLS_STR * __ptr64 __cdecl STRING_BITSET_PAIR::QueryString(void) __ptr64
?QueryString@STRING_BITSET_PAIR@@QEAAPEAVNLS_STR@@XZ
; public: enum ELLIPSIS_STYLE  __cdecl BASE_ELLIPSIS::QueryStyle(void)const  __ptr64
?QueryStyle@BASE_ELLIPSIS@@QEBA?AW4ELLIPSIS_STYLE@@XZ
; public: unsigned long __cdecl WINDOW::QueryStyle(void)const  __ptr64
?QueryStyle@WINDOW@@QEBAKXZ
; public: struct HMENU__ * __ptr64 __cdecl MENU_BASE::QuerySubMenu(int)const  __ptr64
?QuerySubMenu@MENU_BASE@@QEBAPEAUHMENU__@@H@Z
; public: unsigned int __cdecl SET_OF_AUDIT_CATEGORIES::QuerySuccessBaseCID(void) __ptr64
?QuerySuccessBaseCID@SET_OF_AUDIT_CATEGORIES@@QEAAIXZ
; protected: unsigned long __cdecl BASE_SET_FOCUS_DLG::QuerySuppliedHelpContext(void) __ptr64
?QuerySuppliedHelpContext@BASE_SET_FOCUS_DLG@@IEAAKXZ
; protected: unsigned short const * __ptr64 __cdecl BASE_SET_FOCUS_DLG::QuerySuppliedHelpFile(void) __ptr64
?QuerySuppliedHelpFile@BASE_SET_FOCUS_DLG@@IEAAPEBGXZ
; public: long __cdecl BASE_ELLIPSIS::QueryText(unsigned short * __ptr64,unsigned int)const  __ptr64
?QueryText@BASE_ELLIPSIS@@QEBAJPEAGI@Z
; public: long __cdecl BASE_ELLIPSIS::QueryText(class NLS_STR * __ptr64)const  __ptr64
?QueryText@BASE_ELLIPSIS@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl SLE_STRIP::QueryText(unsigned short * __ptr64,unsigned int,unsigned short const * __ptr64,unsigned short const * __ptr64)const  __ptr64
?QueryText@SLE_STRIP@@QEBAJPEAGIPEBG1@Z
; public: long __cdecl SLE_STRIP::QueryText(class NLS_STR * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64)const  __ptr64
?QueryText@SLE_STRIP@@QEBAJPEAVNLS_STR@@PEBG1@Z
; public: long __cdecl SLT_ELLIPSIS::QueryText(unsigned short * __ptr64,unsigned int)const  __ptr64
?QueryText@SLT_ELLIPSIS@@QEBAJPEAGI@Z
; public: long __cdecl SLT_ELLIPSIS::QueryText(class NLS_STR * __ptr64)const  __ptr64
?QueryText@SLT_ELLIPSIS@@QEBAJPEAVNLS_STR@@@Z
; public: long __cdecl WINDOW::QueryText(unsigned short * __ptr64,unsigned int)const  __ptr64
?QueryText@WINDOW@@QEBAJPEAGI@Z
; public: long __cdecl WINDOW::QueryText(class NLS_STR * __ptr64)const  __ptr64
?QueryText@WINDOW@@QEBAJPEAVNLS_STR@@@Z
; public: class XYDIMENSION  __cdecl DEVICE_CONTEXT::QueryTextExtent(class NLS_STR const & __ptr64)const  __ptr64
?QueryTextExtent@DEVICE_CONTEXT@@QEBA?AVXYDIMENSION@@AEBVNLS_STR@@@Z
; public: class XYDIMENSION  __cdecl DEVICE_CONTEXT::QueryTextExtent(unsigned short const * __ptr64,unsigned int)const  __ptr64
?QueryTextExtent@DEVICE_CONTEXT@@QEBA?AVXYDIMENSION@@PEBGI@Z
; public: int __cdecl BASE_ELLIPSIS::QueryTextLength(void)const  __ptr64
?QueryTextLength@BASE_ELLIPSIS@@QEBAHXZ
; public: unsigned int __cdecl NLS_STR::QueryTextLength(void)const  __ptr64
?QueryTextLength@NLS_STR@@QEBAIXZ
; public: int __cdecl WINDOW::QueryTextLength(void)const  __ptr64
?QueryTextLength@WINDOW@@QEBAHXZ
; public: int __cdecl DEVICE_CONTEXT::QueryTextMetrics(struct tagTEXTMETRICW * __ptr64)const  __ptr64
?QueryTextMetrics@DEVICE_CONTEXT@@QEBAHPEAUtagTEXTMETRICW@@@Z
; public: int __cdecl BASE_ELLIPSIS::QueryTextSize(void)const  __ptr64
?QueryTextSize@BASE_ELLIPSIS@@QEBAHXZ
; public: int __cdecl WINDOW::QueryTextSize(void)const  __ptr64
?QueryTextSize@WINDOW@@QEBAHXZ
; public: int __cdecl DISPLAY_CONTEXT::QueryTextWidth(class NLS_STR const & __ptr64)const  __ptr64
?QueryTextWidth@DISPLAY_CONTEXT@@QEBAHAEBVNLS_STR@@@Z
; public: int __cdecl DISPLAY_CONTEXT::QueryTextWidth(unsigned short const * __ptr64,unsigned int)const  __ptr64
?QueryTextWidth@DISPLAY_CONTEXT@@QEBAHPEBGI@Z
; public: int __cdecl XYRECT::QueryTop(void)const  __ptr64
?QueryTop@XYRECT@@QEBAHXZ
; public: int __cdecl LIST_CONTROL::QueryTopIndex(void)const  __ptr64
?QueryTopIndex@LIST_CONTROL@@QEBAHXZ
; public: enum _SID_NAME_USE  __cdecl BROWSER_SUBJECT::QueryType(void)const  __ptr64
?QueryType@BROWSER_SUBJECT@@QEBA?AW4_SID_NAME_USE@@XZ
; public: enum OUTLINE_LB_LEVEL  __cdecl OLLB_ENTRY::QueryType(void)const  __ptr64
?QueryType@OLLB_ENTRY@@QEBA?AW4OUTLINE_LB_LEVEL@@XZ
; public: enum _SID_NAME_USE  __cdecl USER_BROWSER_LBI::QueryType(void)const  __ptr64
?QueryType@USER_BROWSER_LBI@@QEBA?AW4_SID_NAME_USE@@XZ
; public: enum UI_SystemSid  __cdecl USER_BROWSER_LBI::QueryUISysSid(void)const  __ptr64
?QueryUISysSid@USER_BROWSER_LBI@@QEBA?AW4UI_SystemSid@@XZ
; protected: struct _ULC_ENTRY * __ptr64 __cdecl USER_LBI_CACHE::QueryULCEntryPtr(int) __ptr64
?QueryULCEntryPtr@USER_LBI_CACHE@@IEAAPEAU_ULC_ENTRY@@H@Z
; protected: int __cdecl USER_LBI_CACHE::QueryULCEntrySize(void) __ptr64
?QueryULCEntrySize@USER_LBI_CACHE@@IEAAHXZ
; public: struct _UNICODE_STRING const * __ptr64 __cdecl NT_GROUP_ENUM_OBJ::QueryUnicodeComment(void)const  __ptr64
?QueryUnicodeComment@NT_GROUP_ENUM_OBJ@@QEBAPEBU_UNICODE_STRING@@XZ
; public: struct _UNICODE_STRING const * __ptr64 __cdecl NT_GROUP_ENUM_OBJ::QueryUnicodeGroup(void)const  __ptr64
?QueryUnicodeGroup@NT_GROUP_ENUM_OBJ@@QEBAPEBU_UNICODE_STRING@@XZ
; public: struct _UNICODE_STRING const * __ptr64 __cdecl LSA_PRIMARY_DOM_INFO_MEM::QueryUnicodeName(void)const  __ptr64
?QueryUnicodeName@LSA_PRIMARY_DOM_INFO_MEM@@QEBAPEBU_UNICODE_STRING@@XZ
; private: struct _UNICODE_STRING const * __ptr64 __cdecl LSA_REF_DOMAIN_MEM::QueryUnicodeName(unsigned long)const  __ptr64
?QueryUnicodeName@LSA_REF_DOMAIN_MEM@@AEBAPEBU_UNICODE_STRING@@K@Z
; private: struct _UNICODE_STRING const * __ptr64 __cdecl LSA_TRANSLATED_NAME_MEM::QueryUnicodeName(unsigned long)const  __ptr64
?QueryUnicodeName@LSA_TRANSLATED_NAME_MEM@@AEBAPEBU_UNICODE_STRING@@K@Z
; public: struct _UNICODE_STRING const * __ptr64 __cdecl LSA_TRUST_INFO_MEM::QueryUnicodeName(unsigned long)const  __ptr64
?QueryUnicodeName@LSA_TRUST_INFO_MEM@@QEBAPEBU_UNICODE_STRING@@K@Z
; public: struct _UNICODE_STRING const * __ptr64 __cdecl SAM_RID_ENUMERATION_MEM::QueryUnicodeName(unsigned long)const  __ptr64
?QueryUnicodeName@SAM_RID_ENUMERATION_MEM@@QEBAPEBU_UNICODE_STRING@@K@Z
; public: enum _SID_NAME_USE  __cdecl LSA_TRANSLATED_NAME_MEM::QueryUse(unsigned long)const  __ptr64
?QueryUse@LSA_TRANSLATED_NAME_MEM@@QEBA?AW4_SID_NAME_USE@@K@Z
; public: enum _SID_NAME_USE  __cdecl LSA_TRANSLATED_SID_MEM::QueryUse(unsigned long)const  __ptr64
?QueryUse@LSA_TRANSLATED_SID_MEM@@QEBA?AW4_SID_NAME_USE@@K@Z
; public: unsigned long __cdecl USER_BROWSER_LBI::QueryUserAccountFlags(void)const  __ptr64
?QueryUserAccountFlags@USER_BROWSER_LBI@@QEBAKXZ
; protected: class NT_USER_BROWSER_DIALOG * __ptr64 __cdecl NT_GROUP_BROWSER_DIALOG::QueryUserBrowserDialog(void) __ptr64
?QueryUserBrowserDialog@NT_GROUP_BROWSER_DIALOG@@IEAAPEAVNT_USER_BROWSER_DIALOG@@XZ
; public: unsigned short const * __ptr64 __cdecl OPEN_LBI_BASE::QueryUserName(void)const  __ptr64
?QueryUserName@OPEN_LBI_BASE@@QEBAPEBGXZ
; public: long __cdecl SET_OF_AUDIT_CATEGORIES::QueryUserSelectedBits(class BITFIELD * __ptr64,class BITFIELD * __ptr64) __ptr64
?QueryUserSelectedBits@SET_OF_AUDIT_CATEGORIES@@QEAAJPEAVBITFIELD@@0@Z
; public: unsigned __int64 __cdecl VKEY_EVENT::QueryVKey(void)const  __ptr64
?QueryVKey@VKEY_EVENT@@QEBA_KXZ
; public: unsigned long __cdecl CHANGEABLE_SPIN_ITEM::QueryValue(void)const  __ptr64
?QueryValue@CHANGEABLE_SPIN_ITEM@@QEBAKXZ
; public: static unsigned int __cdecl METALLIC_STR_DTE::QueryVerticalMargins(void)
?QueryVerticalMargins@METALLIC_STR_DTE@@SAIXZ
; public: unsigned __int64 __cdecl EVENT::QueryWParam(void)const  __ptr64
?QueryWParam@EVENT@@QEBA_KXZ
; public: static unsigned short const * __ptr64 __cdecl SLE_STRIP::QueryWhiteSpace(void)
?QueryWhiteSpace@SLE_STRIP@@SAPEBGXZ
; public: unsigned int __cdecl BIT_MAP::QueryWidth(void)const  __ptr64
?QueryWidth@BIT_MAP@@QEBAIXZ
; public: unsigned int __cdecl DISPLAY_MAP::QueryWidth(void)const  __ptr64
?QueryWidth@DISPLAY_MAP@@QEBAIXZ
; public: unsigned int __cdecl SIZE_EVENT::QueryWidth(void)const  __ptr64
?QueryWidth@SIZE_EVENT@@QEBAIXZ
; public: unsigned int __cdecl XYDIMENSION::QueryWidth(void)const  __ptr64
?QueryWidth@XYDIMENSION@@QEBAIXZ
; public: void __cdecl WINDOW::QueryWindowRect(struct tagRECT * __ptr64)const  __ptr64
?QueryWindowRect@WINDOW@@QEBAXPEAUtagRECT@@@Z
; public: void __cdecl WINDOW::QueryWindowRect(class XYRECT * __ptr64)const  __ptr64
?QueryWindowRect@WINDOW@@QEBAXPEAVXYRECT@@@Z
; public: int __cdecl CHANGEABLE_SPIN_ITEM::QueryWrap(void)const  __ptr64
?QueryWrap@CHANGEABLE_SPIN_ITEM@@QEBAHXZ
; public: int __cdecl XYPOINT::QueryX(void)const  __ptr64
?QueryX@XYPOINT@@QEBAHXZ
; public: unsigned int __cdecl LOGON_HOURS_CONTROL::QueryXForRow(int) __ptr64
?QueryXForRow@LOGON_HOURS_CONTROL@@QEAAIH@Z
; public: int __cdecl XYPOINT::QueryY(void)const  __ptr64
?QueryY@XYPOINT@@QEBAHXZ
; public: int __cdecl BLT_DATE_SPIN_GROUP::QueryYear(void)const  __ptr64
?QueryYear@BLT_DATE_SPIN_GROUP@@QEBAHXZ
; public: int __cdecl WIN_TIME::QueryYear(void)const  __ptr64
?QueryYear@WIN_TIME@@QEBAHXZ
; public: int __cdecl INTL_PROFILE::QueryYearPos(void)const  __ptr64
?QueryYearPos@INTL_PROFILE@@QEBAHXZ
; protected: virtual enum FOCUS_CACHE_SETTING  __cdecl BASE_SET_FOCUS_DLG::ReadFocusCache(unsigned short const * __ptr64)const  __ptr64
?ReadFocusCache@BASE_SET_FOCUS_DLG@@MEBA?AW4FOCUS_CACHE_SETTING@@PEBG@Z
; public: long __cdecl USER_LBI_CACHE::ReadUsers(class ADMIN_AUTHORITY * __ptr64,unsigned int,unsigned int,int,int * __ptr64) __ptr64
?ReadUsers@USER_LBI_CACHE@@QEAAJPEAVADMIN_AUTHORITY@@IIHPEAH@Z
; public: long __cdecl DEVICE_COMBO::Refresh(void) __ptr64
?Refresh@DEVICE_COMBO@@QEAAJXZ
; protected: void __cdecl OPEN_DIALOG_BASE::Refresh(void) __ptr64
?Refresh@OPEN_DIALOG_BASE@@IEAAXXZ
; public: long __cdecl OPEN_LBOX_BASE::Refresh(void) __ptr64
?Refresh@OPEN_LBOX_BASE@@QEAAJXZ
; protected: virtual void __cdecl HIER_LISTBOX::RefreshChildren(class HIER_LBI * __ptr64) __ptr64
?RefreshChildren@HIER_LISTBOX@@MEAAXPEAVHIER_LBI@@@Z
; public: virtual void __cdecl UI_EXT_MGR::RefreshExtensions(struct HWND__ * __ptr64) __ptr64
?RefreshExtensions@UI_EXT_MGR@@UEAAXPEAUHWND__@@@Z
; public: static long __cdecl BLT::RegisterHelpFile(struct HINSTANCE__ * __ptr64,long,unsigned long,unsigned long)
?RegisterHelpFile@BLT@@SAJPEAUHINSTANCE__@@JKK@Z
; public: long __cdecl WIN32_MUTEX::Release(void) __ptr64
?Release@WIN32_MUTEX@@QEAAJXZ
; public: long __cdecl WIN32_SEMAPHORE::Release(long,long * __ptr64) __ptr64
?Release@WIN32_SEMAPHORE@@QEAAJJPEAJ@Z
; private: virtual void __cdecl BLT_LISTBOX::ReleaseLBI(class LBI * __ptr64) __ptr64
?ReleaseLBI@BLT_LISTBOX@@EEAAXPEAVLBI@@@Z
; private: virtual void __cdecl LAZY_LISTBOX::ReleaseLBI(class LBI * __ptr64) __ptr64
?ReleaseLBI@LAZY_LISTBOX@@EEAAXPEAVLBI@@@Z
; public: void __cdecl CLIENT_WINDOW::ReleaseMouse(void) __ptr64
?ReleaseMouse@CLIENT_WINDOW@@QEAAXXZ
; public: void __cdecl DISPATCHER::ReleaseMouse(void) __ptr64
?ReleaseMouse@DISPATCHER@@QEAAXXZ
; public: virtual long __cdecl LB_COL_WIDTHS::ReloadColumnWidths(struct HWND__ * __ptr64,struct HINSTANCE__ * __ptr64,class IDRESOURCE const & __ptr64) __ptr64
?ReloadColumnWidths@LB_COL_WIDTHS@@UEAAJPEAUHWND__@@PEAUHINSTANCE__@@AEBVIDRESOURCE@@@Z
; public: int __cdecl ARRAY_LIST_CONTROLVAL_CID_PAIR::Remove(class CONTROLVAL_CID_PAIR const & __ptr64) __ptr64
?Remove@ARRAY_LIST_CONTROLVAL_CID_PAIR@@QEAAHAEBVCONTROLVAL_CID_PAIR@@@Z
; public: static void __cdecl HWND_DLGPTR_CACHE::Remove(struct HWND__ * __ptr64)
?Remove@HWND_DLGPTR_CACHE@@SAXPEAUHWND__@@@Z
; public: long __cdecl MENU_BASE::Remove(unsigned int,unsigned int)const  __ptr64
?Remove@MENU_BASE@@QEBAJII@Z
; public: class ASSOCHCFILE * __ptr64 __cdecl SLIST_OF_ASSOCHCFILE::Remove(class ITER_SL_ASSOCHCFILE & __ptr64) __ptr64
?Remove@SLIST_OF_ASSOCHCFILE@@QEAAPEAVASSOCHCFILE@@AEAVITER_SL_ASSOCHCFILE@@@Z
; public: struct CLIENTDATA * __ptr64 __cdecl SLIST_OF_CLIENTDATA::Remove(class ITER_SL_CLIENTDATA & __ptr64) __ptr64
?Remove@SLIST_OF_CLIENTDATA@@QEAAPEAUCLIENTDATA@@AEAVITER_SL_CLIENTDATA@@@Z
; public: class NLS_STR * __ptr64 __cdecl SLIST_OF_NLS_STR::Remove(class ITER_SL_NLS_STR & __ptr64) __ptr64
?Remove@SLIST_OF_NLS_STR@@QEAAPEAVNLS_STR@@AEAVITER_SL_NLS_STR@@@Z
; public: class TIMER_BASE * __ptr64 __cdecl SLIST_OF_TIMER_BASE::Remove(class ITER_SL_TIMER_BASE & __ptr64) __ptr64
?Remove@SLIST_OF_TIMER_BASE@@QEAAPEAVTIMER_BASE@@AEAVITER_SL_TIMER_BASE@@@Z
; public: class USER_BROWSER_LBI * __ptr64 __cdecl SLIST_OF_USER_BROWSER_LBI::Remove(class ITER_SL_USER_BROWSER_LBI & __ptr64) __ptr64
?Remove@SLIST_OF_USER_BROWSER_LBI@@QEAAPEAVUSER_BROWSER_LBI@@AEAVITER_SL_USER_BROWSER_LBI@@@Z
; public: void __cdecl BLT_LISTBOX::RemoveAllItems(void) __ptr64
?RemoveAllItems@BLT_LISTBOX@@QEAAXXZ
; public: static void __cdecl BLTIMP::RemoveClient(struct HINSTANCE__ * __ptr64)
?RemoveClient@BLTIMP@@SAXPEAUHINSTANCE__@@@Z
; public: int __cdecl CONTROL_TABLE::RemoveControl(class CONTROL_WINDOW * __ptr64) __ptr64
?RemoveControl@CONTROL_TABLE@@QEAAHPEAVCONTROL_WINDOW@@@Z
; protected: void __cdecl ACCOUNT_NAMES_MLE::RemoveDuplicateAccountNames(class STRLIST * __ptr64) __ptr64
?RemoveDuplicateAccountNames@ACCOUNT_NAMES_MLE@@IEAAXPEAVSTRLIST@@@Z
; public: static void __cdecl BLTIMP::RemoveHelpAssoc(struct HINSTANCE__ * __ptr64,unsigned long)
?RemoveHelpAssoc@BLTIMP@@SAXPEAUHINSTANCE__@@K@Z
; public: class LBI * __ptr64 __cdecl BLT_LISTBOX::RemoveItem(int) __ptr64
?RemoveItem@BLT_LISTBOX@@QEAAPEAVLBI@@H@Z
; public: class LBI * __ptr64 __cdecl USER_BROWSER_LB::RemoveItem(int) __ptr64
?RemoveItem@USER_BROWSER_LB@@QEAAPEAVLBI@@H@Z
; public: virtual class LBI * __ptr64 __cdecl USER_BROWSER_LBI_CACHE::RemoveItem(int) __ptr64
?RemoveItem@USER_BROWSER_LBI_CACHE@@UEAAPEAVLBI@@H@Z
; public: virtual class LBI * __ptr64 __cdecl USER_LBI_CACHE::RemoveItem(int) __ptr64
?RemoveItem@USER_LBI_CACHE@@UEAAPEAVLBI@@H@Z
; public: void __cdecl LIST_CONTROL::RemoveSelection(void) __ptr64
?RemoveSelection@LIST_CONTROL@@QEAAXXZ
; public: void __cdecl BLT_MASTER_TIMER::RemoveTimer(class TIMER_BASE * __ptr64) __ptr64
?RemoveTimer@BLT_MASTER_TIMER@@QEAAXPEAVTIMER_BASE@@@Z
; public: class LBI * __ptr64 __cdecl LBI_HEAP::RemoveTopItem(void) __ptr64
?RemoveTopItem@LBI_HEAP@@QEAAPEAVLBI@@XZ
; public: void __cdecl WINDOW::RepaintNow(void) __ptr64
?RepaintNow@WINDOW@@QEAAXXZ
; protected: long __cdecl ACCOUNT_NAMES_MLE::ReplaceDomainIfBuiltIn(class NLS_STR * __ptr64,int * __ptr64) __ptr64
?ReplaceDomainIfBuiltIn@ACCOUNT_NAMES_MLE@@IEAAJPEAVNLS_STR@@PEAH@Z
; public: long __cdecl BLT_LISTBOX::ReplaceItem(int,class LBI * __ptr64,class LBI * __ptr64 * __ptr64) __ptr64
?ReplaceItem@BLT_LISTBOX@@QEAAJHPEAVLBI@@PEAPEAV2@@Z
; protected: void __cdecl BASE::ReportError(long) __ptr64
?ReportError@BASE@@IEAAXJ@Z
; protected: void __cdecl CONTROL_TABLE::ReportError(void) __ptr64
?ReportError@CONTROL_TABLE@@IEAAXXZ
; protected: void __cdecl CONTROL_WINDOW::ReportError(long) __ptr64
?ReportError@CONTROL_WINDOW@@IEAAXJ@Z
; protected: void __cdecl FORWARDING_BASE::ReportError(long) __ptr64
?ReportError@FORWARDING_BASE@@IEAAXJ@Z
; protected: void __cdecl SLT_ELLIPSIS::ReportError(long) __ptr64
?ReportError@SLT_ELLIPSIS@@IEAAXJ@Z
; public: long __cdecl BROWSER_DOMAIN::RequestAccountData(void) __ptr64
?RequestAccountData@BROWSER_DOMAIN@@QEAAJXZ
; public: long __cdecl DOMAIN_FILL_THREAD::RequestAccountData(void) __ptr64
?RequestAccountData@DOMAIN_FILL_THREAD@@QEAAJXZ
; public: long __cdecl BROWSER_DOMAIN::RequestAndWaitForUsers(void) __ptr64
?RequestAndWaitForUsers@BROWSER_DOMAIN@@QEAAJXZ
; public: long __cdecl DOMAIN_FILL_THREAD::RequestAndWaitForUsers(void) __ptr64
?RequestAndWaitForUsers@DOMAIN_FILL_THREAD@@QEAAJXZ
; private: virtual class LBI * __ptr64 __cdecl BLT_LISTBOX::RequestLBI(struct tagDRAWITEMSTRUCT const * __ptr64) __ptr64
?RequestLBI@BLT_LISTBOX@@EEAAPEAVLBI@@PEBUtagDRAWITEMSTRUCT@@@Z
; private: virtual class LBI * __ptr64 __cdecl LAZY_LISTBOX::RequestLBI(struct tagDRAWITEMSTRUCT const * __ptr64) __ptr64
?RequestLBI@LAZY_LISTBOX@@EEAAPEAVLBI@@PEBUtagDRAWITEMSTRUCT@@@Z
; public: void __cdecl BROWSE_DOMAIN_ENUM::Reset(void) __ptr64
?Reset@BROWSE_DOMAIN_ENUM@@QEAAXXZ
; public: void __cdecl ITER_CTRL::Reset(void) __ptr64
?Reset@ITER_CTRL@@QEAAXXZ
; public: long __cdecl WIN32_EVENT::Reset(void) __ptr64
?Reset@WIN32_EVENT@@QEAAJXZ
; public: static void __cdecl POPUP::ResetCaption(void)
?ResetCaption@POPUP@@SAXXZ
; protected: void __cdecl WINDOW::ResetCreator(void) __ptr64
?ResetCreator@WINDOW@@IEAAXXZ
; protected: void __cdecl BASE::ResetError(void) __ptr64
?ResetError@BASE@@IEAAXXZ
; protected: void __cdecl CONTROL_WINDOW::ResetError(void) __ptr64
?ResetError@CONTROL_WINDOW@@IEAAXXZ
; protected: void __cdecl FORWARDING_BASE::ResetError(void) __ptr64
?ResetError@FORWARDING_BASE@@IEAAXXZ
; protected: void __cdecl SLT_ELLIPSIS::ResetError(void) __ptr64
?ResetError@SLT_ELLIPSIS@@IEAAXXZ
; public: void __cdecl BLT_MASTER_TIMER::ResetIterator(void) __ptr64
?ResetIterator@BLT_MASTER_TIMER@@QEAAXXZ
; public: void __cdecl SLT_ELLIPSIS::ResetStyle(enum ELLIPSIS_STYLE) __ptr64
?ResetStyle@SLT_ELLIPSIS@@QEAAXW4ELLIPSIS_STYLE@@@Z
; public: int __cdecl ARRAY_CONTROLVAL_CID_PAIR::Resize(unsigned int,int) __ptr64
?Resize@ARRAY_CONTROLVAL_CID_PAIR@@QEAAHIH@Z
; public: long __cdecl BLT_LISTBOX::Resort(void) __ptr64
?Resort@BLT_LISTBOX@@QEAAJXZ
; protected: virtual void __cdecl BLT_DATE_SPIN_GROUP::RestoreValue(int) __ptr64
?RestoreValue@BLT_DATE_SPIN_GROUP@@MEAAXH@Z
; protected: virtual void __cdecl BLT_TIME_SPIN_GROUP::RestoreValue(int) __ptr64
?RestoreValue@BLT_TIME_SPIN_GROUP@@MEAAXH@Z
; protected: virtual void __cdecl COMBOBOX::RestoreValue(int) __ptr64
?RestoreValue@COMBOBOX@@MEAAXH@Z
; protected: virtual void __cdecl CONTROL_VALUE::RestoreValue(int) __ptr64
?RestoreValue@CONTROL_VALUE@@MEAAXH@Z
; protected: virtual void __cdecl EDIT_CONTROL::RestoreValue(int) __ptr64
?RestoreValue@EDIT_CONTROL@@MEAAXH@Z
; protected: virtual void __cdecl LIST_CONTROL::RestoreValue(int) __ptr64
?RestoreValue@LIST_CONTROL@@MEAAXH@Z
; protected: virtual void __cdecl MAGIC_GROUP::RestoreValue(int) __ptr64
?RestoreValue@MAGIC_GROUP@@MEAAXH@Z
; protected: virtual void __cdecl RADIO_GROUP::RestoreValue(int) __ptr64
?RestoreValue@RADIO_GROUP@@MEAAXH@Z
; protected: virtual void __cdecl SLT::RestoreValue(int) __ptr64
?RestoreValue@SLT@@MEAAXH@Z
; public: virtual void __cdecl SPIN_GROUP::RestoreValue(int) __ptr64
?RestoreValue@SPIN_GROUP@@UEAAXH@Z
; protected: virtual void __cdecl STATE_BUTTON_CONTROL::RestoreValue(int) __ptr64
?RestoreValue@STATE_BUTTON_CONTROL@@MEAAXH@Z
; public: long __cdecl WIN32_THREAD::Resume(void) __ptr64
?Resume@WIN32_THREAD@@QEAAJXZ
; protected: virtual int __cdecl APPLICATION::Run(void) __ptr64
?Run@APPLICATION@@MEAAHXZ
; protected: unsigned __int64 __cdecl HAS_MESSAGE_PUMP::RunMessagePump(void) __ptr64
?RunMessagePump@HAS_MESSAGE_PUMP@@IEAA_KXZ
; public: virtual long __cdecl CHANGEABLE_SPIN_ITEM::SaveCurrentData(void) __ptr64
?SaveCurrentData@CHANGEABLE_SPIN_ITEM@@UEAAJXZ
; public: virtual long __cdecl SPIN_SLE_NUM::SaveCurrentData(void) __ptr64
?SaveCurrentData@SPIN_SLE_NUM@@UEAAJXZ
; public: virtual long __cdecl SPIN_SLE_STR::SaveCurrentData(void) __ptr64
?SaveCurrentData@SPIN_SLE_STR@@UEAAJXZ
; protected: virtual void __cdecl BLT_DATE_SPIN_GROUP::SaveValue(int) __ptr64
?SaveValue@BLT_DATE_SPIN_GROUP@@MEAAXH@Z
; protected: virtual void __cdecl BLT_TIME_SPIN_GROUP::SaveValue(int) __ptr64
?SaveValue@BLT_TIME_SPIN_GROUP@@MEAAXH@Z
; protected: virtual void __cdecl COMBOBOX::SaveValue(int) __ptr64
?SaveValue@COMBOBOX@@MEAAXH@Z
; protected: virtual void __cdecl CONTROL_VALUE::SaveValue(int) __ptr64
?SaveValue@CONTROL_VALUE@@MEAAXH@Z
; protected: virtual void __cdecl EDIT_CONTROL::SaveValue(int) __ptr64
?SaveValue@EDIT_CONTROL@@MEAAXH@Z
; protected: virtual void __cdecl LIST_CONTROL::SaveValue(int) __ptr64
?SaveValue@LIST_CONTROL@@MEAAXH@Z
; protected: virtual void __cdecl MAGIC_GROUP::SaveValue(int) __ptr64
?SaveValue@MAGIC_GROUP@@MEAAXH@Z
; protected: virtual void __cdecl RADIO_GROUP::SaveValue(int) __ptr64
?SaveValue@RADIO_GROUP@@MEAAXH@Z
; protected: virtual void __cdecl SLT::SaveValue(int) __ptr64
?SaveValue@SLT@@MEAAXH@Z
; public: virtual void __cdecl SPIN_GROUP::SaveValue(int) __ptr64
?SaveValue@SPIN_GROUP@@UEAAXH@Z
; protected: virtual void __cdecl STATE_BUTTON_CONTROL::SaveValue(int) __ptr64
?SaveValue@STATE_BUTTON_CONTROL@@MEAAXH@Z
; public: void __cdecl XYPOINT::ScreenToClient(struct HWND__ * __ptr64) __ptr64
?ScreenToClient@XYPOINT@@QEAAXPEAUHWND__@@@Z
; public: struct HBITMAP__ * __ptr64 __cdecl DEVICE_CONTEXT::SelectBitmap(struct HBITMAP__ * __ptr64) __ptr64
?SelectBitmap@DEVICE_CONTEXT@@QEAAPEAUHBITMAP__@@PEAU2@@Z
; public: struct HBRUSH__ * __ptr64 __cdecl DEVICE_CONTEXT::SelectBrush(struct HBRUSH__ * __ptr64) __ptr64
?SelectBrush@DEVICE_CONTEXT@@QEAAPEAUHBRUSH__@@PEAU2@@Z
; public: struct HFONT__ * __ptr64 __cdecl DEVICE_CONTEXT::SelectFont(struct HFONT__ * __ptr64) __ptr64
?SelectFont@DEVICE_CONTEXT@@QEAAPEAUHFONT__@@PEAU2@@Z
; public: void __cdecl BROWSER_DOMAIN_CB::SelectItem(class BROWSER_DOMAIN * __ptr64) __ptr64
?SelectItem@BROWSER_DOMAIN_CB@@QEAAXPEAVBROWSER_DOMAIN@@@Z
; public: void __cdecl LIST_CONTROL::SelectItem(int,int) __ptr64
?SelectItem@LIST_CONTROL@@QEAAXHH@Z
; public: void __cdecl LIST_CONTROL::SelectItems(int * __ptr64,int,int) __ptr64
?SelectItems@LIST_CONTROL@@QEAAXPEAHHH@Z
; private: void __cdecl BASE_SET_FOCUS_DLG::SelectNetPathString(void) __ptr64
?SelectNetPathString@BASE_SET_FOCUS_DLG@@AEAAXXZ
; protected: void * __ptr64 __cdecl DEVICE_CONTEXT::SelectObject(void * __ptr64) __ptr64
?SelectObject@DEVICE_CONTEXT@@IEAAPEAXPEAX@Z
; public: struct HPEN__ * __ptr64 __cdecl DEVICE_CONTEXT::SelectPen(struct HPEN__ * __ptr64) __ptr64
?SelectPen@DEVICE_CONTEXT@@QEAAPEAUHPEN__@@PEAU2@@Z
; public: void __cdecl COMBOBOX::SelectString(void) __ptr64
?SelectString@COMBOBOX@@QEAAXXZ
; public: void __cdecl EDIT_CONTROL::SelectString(void) __ptr64
?SelectString@EDIT_CONTROL@@QEAAXXZ
; public: __int64 __cdecl EVENT::SendTo(struct HWND__ * __ptr64)const  __ptr64
?SendTo@EVENT@@QEBA_JPEAUHWND__@@@Z
; public: static struct HICON__ * __ptr64 __cdecl CURSOR::Set(struct HICON__ * __ptr64)
?Set@CURSOR@@SAPEAUHICON__@@PEAU2@@Z
; public: long __cdecl WIN32_EVENT::Set(void) __ptr64
?Set@WIN32_EVENT@@QEAAJXZ
; public: long __cdecl SPIN_ITEM::SetAccKey(class NLS_STR const & __ptr64) __ptr64
?SetAccKey@SPIN_ITEM@@QEAAJAEBVNLS_STR@@@Z
; public: long __cdecl SPIN_ITEM::SetAccKey(long) __ptr64
?SetAccKey@SPIN_ITEM@@QEAAJJ@Z
; public: long __cdecl NT_USER_BROWSER_DIALOG::SetAndFillErrorText(long,int) __ptr64
?SetAndFillErrorText@NT_USER_BROWSER_DIALOG@@QEAAJJH@Z
; protected: void __cdecl SPIN_GROUP::SetArrowButtonStatus(void) __ptr64
?SetArrowButtonStatus@SPIN_GROUP@@IEAAXXZ
; public: long __cdecl BROWSER_DOMAIN::SetAsTargetDomain(void) __ptr64
?SetAsTargetDomain@BROWSER_DOMAIN@@QEAAJXZ
; protected: void __cdecl HEAP_BASE::SetAutoReadjust(int) __ptr64
?SetAutoReadjust@HEAP_BASE@@IEAAXH@Z
; public: void __cdecl CHANGEABLE_SPIN_ITEM::SetBigDecValue(unsigned long) __ptr64
?SetBigDecValue@CHANGEABLE_SPIN_ITEM@@QEAAXK@Z
; public: void __cdecl CHANGEABLE_SPIN_ITEM::SetBigIncValue(unsigned long) __ptr64
?SetBigIncValue@CHANGEABLE_SPIN_ITEM@@QEAAXK@Z
; public: void __cdecl BIT_MAP::SetBitmap(struct HBITMAP__ * __ptr64) __ptr64
?SetBitmap@BIT_MAP@@QEAAXPEAUHBITMAP__@@@Z
; private: void __cdecl DISPLAY_MAP::SetBitmapBits(unsigned char * __ptr64,int,int,unsigned int) __ptr64
?SetBitmapBits@DISPLAY_MAP@@AEAAXPEAEHHI@Z
; public: unsigned long __cdecl DEVICE_CONTEXT::SetBkColor(unsigned long) __ptr64
?SetBkColor@DEVICE_CONTEXT@@QEAAKK@Z
; public: int __cdecl DEVICE_CONTEXT::SetBkMode(int) __ptr64
?SetBkMode@DEVICE_CONTEXT@@QEAAHH@Z
; protected: long __cdecl GET_FNAME_BASE_DLG::SetBuffer(class BUFFER * __ptr64,class STRLIST & __ptr64) __ptr64
?SetBuffer@GET_FNAME_BASE_DLG@@IEAAJPEAVBUFFER@@AEAVSTRLIST@@@Z
; protected: void __cdecl ENUM_OBJ_BASE::SetBufferPtr(unsigned char const * __ptr64) __ptr64
?SetBufferPtr@ENUM_OBJ_BASE@@IEAAXPEBE@Z
; public: void __cdecl ORDER_GROUP::SetButton(void) __ptr64
?SetButton@ORDER_GROUP@@QEAAXXZ
; public: static void __cdecl POPUP::SetCaption(long)
?SetCaption@POPUP@@SAXJ@Z
; public: void __cdecl LIST_CONTROL::SetCaretIndex(int,int) __ptr64
?SetCaretIndex@LIST_CONTROL@@QEAAXHH@Z
; public: void __cdecl MENUITEM::SetCheck(int) __ptr64
?SetCheck@MENUITEM@@QEAAXH@Z
; private: void __cdecl RADIO_BUTTON::SetCheck(int) __ptr64
?SetCheck@RADIO_BUTTON@@AEAAXH@Z
; public: void __cdecl STATE2_BUTTON_CONTROL::SetCheck(int) __ptr64
?SetCheck@STATE2_BUTTON_CONTROL@@QEAAXH@Z
; public: long __cdecl SET_OF_AUDIT_CATEGORIES::SetCheckBoxNames(class MASK_MAP * __ptr64) __ptr64
?SetCheckBoxNames@SET_OF_AUDIT_CATEGORIES@@QEAAJPEAVMASK_MAP@@@Z
; protected: static void __cdecl WINDOW::SetClientGeneratedMsgFlag(int)
?SetClientGeneratedMsgFlag@WINDOW@@KAXH@Z
; public: void __cdecl METER::SetComplete(int) __ptr64
?SetComplete@METER@@QEAAXH@Z
; protected: virtual void __cdecl BLT_DATE_SPIN_GROUP::SetControlValueFocus(void) __ptr64
?SetControlValueFocus@BLT_DATE_SPIN_GROUP@@MEAAXXZ
; protected: virtual void __cdecl BLT_TIME_SPIN_GROUP::SetControlValueFocus(void) __ptr64
?SetControlValueFocus@BLT_TIME_SPIN_GROUP@@MEAAXXZ
; public: virtual void __cdecl CONTROL_VALUE::SetControlValueFocus(void) __ptr64
?SetControlValueFocus@CONTROL_VALUE@@UEAAXXZ
; public: virtual void __cdecl CONTROL_WINDOW::SetControlValueFocus(void) __ptr64
?SetControlValueFocus@CONTROL_WINDOW@@UEAAXXZ
; protected: virtual void __cdecl EDIT_CONTROL::SetControlValueFocus(void) __ptr64
?SetControlValueFocus@EDIT_CONTROL@@MEAAXXZ
; public: virtual void __cdecl MAGIC_GROUP::SetControlValueFocus(void) __ptr64
?SetControlValueFocus@MAGIC_GROUP@@UEAAXXZ
; public: virtual void __cdecl RADIO_GROUP::SetControlValueFocus(void) __ptr64
?SetControlValueFocus@RADIO_GROUP@@UEAAXXZ
; public: virtual void __cdecl SPIN_GROUP::SetControlValueFocus(void) __ptr64
?SetControlValueFocus@SPIN_GROUP@@UEAAXXZ
; public: void __cdecl LAZY_LISTBOX::SetCount(unsigned int) __ptr64
?SetCount@LAZY_LISTBOX@@QEAAXI@Z
; public: void __cdecl USER_BROWSER_LB::SetCurrentCache(class USER_BROWSER_LBI_CACHE * __ptr64) __ptr64
?SetCurrentCache@USER_BROWSER_LB@@QEAAXPEAVUSER_BROWSER_LBI_CACHE@@@Z
; public: long __cdecl BLT_DATE_SPIN_GROUP::SetCurrentDay(void) __ptr64
?SetCurrentDay@BLT_DATE_SPIN_GROUP@@QEAAJXZ
; public: void __cdecl NT_USER_BROWSER_DIALOG::SetCurrentDomainFocus(class BROWSER_DOMAIN * __ptr64) __ptr64
?SetCurrentDomainFocus@NT_USER_BROWSER_DIALOG@@QEAAXPEAVBROWSER_DOMAIN@@@Z
; protected: void __cdecl SPIN_GROUP::SetCurrentField(class SPIN_ITEM * __ptr64) __ptr64
?SetCurrentField@SPIN_GROUP@@IEAAXPEAVSPIN_ITEM@@@Z
; public: long __cdecl BLT_TIME_SPIN_GROUP::SetCurrentTime(void) __ptr64
?SetCurrentTime@BLT_TIME_SPIN_GROUP@@QEAAJXZ
; public: long __cdecl GET_FNAME_BASE_DLG::SetCustomFilter(class STRLIST & __ptr64,unsigned long) __ptr64
?SetCustomFilter@GET_FNAME_BASE_DLG@@QEAAJAEAVSTRLIST@@K@Z
; public: void __cdecl DISK_SPACE_SUBCLASS::SetDSFieldName(long) __ptr64
?SetDSFieldName@DISK_SPACE_SUBCLASS@@QEAAXJ@Z
; public: void __cdecl BLT_DATE_SPIN_GROUP::SetDay(int) __ptr64
?SetDay@BLT_DATE_SPIN_GROUP@@QEAAXH@Z
; private: static void __cdecl HIER_LBI::SetDestroyable(int)
?SetDestroyable@HIER_LBI@@CAXH@Z
; public: void __cdecl OWNER_WINDOW::SetDialogFocus(class CONTROL_WINDOW & __ptr64) __ptr64
?SetDialogFocus@OWNER_WINDOW@@QEAAXAEAVCONTROL_WINDOW@@@Z
; protected: void __cdecl NT_USER_BROWSER_DIALOG::SetDomainComboDropFlag(int) __ptr64
?SetDomainComboDropFlag@NT_USER_BROWSER_DIALOG@@IEAAXH@Z
; public: void __cdecl OUTLINE_LISTBOX::SetDomainExpanded(int,int) __ptr64
?SetDomainExpanded@OUTLINE_LISTBOX@@QEAAXHH@Z
; public: long __cdecl BASE_ELLIPSIS::SetEllipsis(unsigned short * __ptr64) __ptr64
?SetEllipsis@BASE_ELLIPSIS@@QEAAJPEAG@Z
; public: long __cdecl BASE_ELLIPSIS::SetEllipsis(class NLS_STR * __ptr64) __ptr64
?SetEllipsis@BASE_ELLIPSIS@@QEAAJPEAVNLS_STR@@@Z
; protected: long __cdecl BASE_ELLIPSIS::SetEllipsisCenter(class NLS_STR * __ptr64) __ptr64
?SetEllipsisCenter@BASE_ELLIPSIS@@IEAAJPEAVNLS_STR@@@Z
; protected: long __cdecl BASE_ELLIPSIS::SetEllipsisLeft(class NLS_STR * __ptr64) __ptr64
?SetEllipsisLeft@BASE_ELLIPSIS@@IEAAJPEAVNLS_STR@@@Z
; protected: long __cdecl BASE_ELLIPSIS::SetEllipsisPath(class NLS_STR * __ptr64) __ptr64
?SetEllipsisPath@BASE_ELLIPSIS@@IEAAJPEAVNLS_STR@@@Z
; protected: long __cdecl BASE_ELLIPSIS::SetEllipsisRight(class NLS_STR * __ptr64) __ptr64
?SetEllipsisRight@BASE_ELLIPSIS@@IEAAJPEAVNLS_STR@@@Z
; protected: void __cdecl GET_FNAME_BASE_DLG::SetEnableHook(int) __ptr64
?SetEnableHook@GET_FNAME_BASE_DLG@@IEAAXH@Z
; public: void __cdecl HIER_LBI::SetExpanded(int) __ptr64
?SetExpanded@HIER_LBI@@QEAAXH@Z
; private: void __cdecl OLLB_ENTRY::SetExpanded(int) __ptr64
?SetExpanded@OLLB_ENTRY@@AEAAXH@Z
; public: int __cdecl SPIN_GROUP::SetFieldMinMax(unsigned short) __ptr64
?SetFieldMinMax@SPIN_GROUP@@QEAAHG@Z
; public: long __cdecl SPIN_SLE_NUM_VALID::SetFieldName(long) __ptr64
?SetFieldName@SPIN_SLE_NUM_VALID@@QEAAJJ@Z
; public: long __cdecl GET_FNAME_BASE_DLG::SetFileExtension(class NLS_STR const & __ptr64) __ptr64
?SetFileExtension@GET_FNAME_BASE_DLG@@QEAAJAEBVNLS_STR@@@Z
; public: long __cdecl GET_FNAME_BASE_DLG::SetFilter(class STRLIST & __ptr64,unsigned long) __ptr64
?SetFilter@GET_FNAME_BASE_DLG@@QEAAJAEAVSTRLIST@@K@Z
; public: void __cdecl MLE::SetFmtLines(int) __ptr64
?SetFmtLines@MLE@@QEAAXH@Z
; public: void __cdecl OWNER_WINDOW::SetFocus(unsigned int) __ptr64
?SetFocus@OWNER_WINDOW@@QEAAXI@Z
; public: void __cdecl CONTROL_WINDOW::SetFont(struct HFONT__ * __ptr64,int) __ptr64
?SetFont@CONTROL_WINDOW@@QEAAXPEAUHFONT__@@H@Z
; public: long __cdecl FONT::SetFont(struct tagLOGFONTW const & __ptr64) __ptr64
?SetFont@FONT@@QEAAJAEBUtagLOGFONTW@@@Z
; public: long __cdecl FONT::SetFont(struct HFONT__ * __ptr64) __ptr64
?SetFont@FONT@@QEAAJPEAUHFONT__@@@Z
; public: void __cdecl CONTROL_VALUE::SetGroup(class CONTROL_GROUP * __ptr64) __ptr64
?SetGroup@CONTROL_VALUE@@QEAAXPEAVCONTROL_GROUP@@@Z
; protected: void __cdecl MENU_BASE::SetHandle(struct HMENU__ * __ptr64) __ptr64
?SetHandle@MENU_BASE@@IEAAXPEAUHMENU__@@@Z
; protected: void __cdecl WIN32_HANDLE::SetHandle(void * __ptr64) __ptr64
?SetHandle@WIN32_HANDLE@@IEAAXPEAX@Z
; public: void __cdecl XYDIMENSION::SetHeight(unsigned int) __ptr64
?SetHeight@XYDIMENSION@@QEAAXI@Z
; public: void __cdecl GET_FNAME_BASE_DLG::SetHelpActive(int) __ptr64
?SetHelpActive@GET_FNAME_BASE_DLG@@QEAAXH@Z
; public: static unsigned long __cdecl POPUP::SetHelpContextBase(unsigned long)
?SetHelpContextBase@POPUP@@SAKK@Z
; public: void __cdecl GET_FNAME_BASE_DLG::SetHookProc(unsigned __int64) __ptr64
?SetHookProc@GET_FNAME_BASE_DLG@@QEAAX_K@Z
; public: void __cdecl LISTBOX::SetHorizontalExtent(unsigned int) __ptr64
?SetHorizontalExtent@LISTBOX@@QEAAXI@Z
; public: void __cdecl BLT_TIME_SPIN_GROUP::SetHour(int) __ptr64
?SetHour@BLT_TIME_SPIN_GROUP@@QEAAXH@Z
; public: long __cdecl LOGON_HOURS_CONTROL::SetHours(class LOGON_HOURS_SETTING const * __ptr64) __ptr64
?SetHours@LOGON_HOURS_CONTROL@@QEAAJPEBVLOGON_HOURS_SETTING@@@Z
; protected: void __cdecl WINDOW::SetHwnd(struct HWND__ * __ptr64) __ptr64
?SetHwnd@WINDOW@@IEAAXPEAUHWND__@@@Z
; public: int __cdecl APP_WINDOW::SetIcon(class IDRESOURCE const & __ptr64) __ptr64
?SetIcon@APP_WINDOW@@QEAAHAEBVIDRESOURCE@@@Z
; public: long __cdecl ICON_CONTROL::SetIcon(class IDRESOURCE const & __ptr64) __ptr64
?SetIcon@ICON_CONTROL@@QEAAJAEBVIDRESOURCE@@@Z
; protected: void __cdecl CANCEL_TASK_DIALOG::SetInTimer(int) __ptr64
?SetInTimer@CANCEL_TASK_DIALOG@@IEAAXH@Z
; public: void __cdecl USER_BROWSER_LBI_CACHE::SetIncludeUsers(int) __ptr64
?SetIncludeUsers@USER_BROWSER_LBI_CACHE@@QEAAXH@Z
; private: void __cdecl HIER_LBI::SetIndentLevel(void) __ptr64
?SetIndentLevel@HIER_LBI@@AEAAXXZ
; public: long __cdecl GET_FNAME_BASE_DLG::SetInitialDir(class NLS_STR const & __ptr64) __ptr64
?SetInitialDir@GET_FNAME_BASE_DLG@@QEAAJAEBVNLS_STR@@@Z
; private: void __cdecl BLT_LISTBOX::SetItem(int,class LBI * __ptr64) __ptr64
?SetItem@BLT_LISTBOX@@AEAAXHPEAVLBI@@@Z
; protected: int __cdecl LIST_CONTROL::SetItemData(int,void * __ptr64) __ptr64
?SetItemData@LIST_CONTROL@@IEAAHHPEAX@Z
; public: int __cdecl DEVICE_CONTEXT::SetMapMode(int) __ptr64
?SetMapMode@DEVICE_CONTEXT@@QEAAHH@Z
; private: void __cdecl DISPLAY_MAP::SetMaskBits(unsigned char * __ptr64,int,int,unsigned int) __ptr64
?SetMaskBits@DISPLAY_MAP@@AEAAXPEAEHHI@Z
; private: void __cdecl SPIN_SLE_NUM::SetMaxInput(void) __ptr64
?SetMaxInput@SPIN_SLE_NUM@@AEAAXXZ
; public: int __cdecl COMBOBOX::SetMaxLength(unsigned int) __ptr64
?SetMaxLength@COMBOBOX@@QEAAHI@Z
; public: void __cdecl EDIT_CONTROL::SetMaxLength(unsigned int) __ptr64
?SetMaxLength@EDIT_CONTROL@@QEAAXI@Z
; public: int __cdecl APP_WINDOW::SetMenu(class IDRESOURCE const & __ptr64) __ptr64
?SetMenu@APP_WINDOW@@QEAAHAEBVIDRESOURCE@@@Z
; public: void __cdecl CHANGEABLE_SPIN_ITEM::SetMin(unsigned long) __ptr64
?SetMin@CHANGEABLE_SPIN_ITEM@@QEAAXK@Z
; public: void __cdecl SPIN_SLE_NUM::SetMin(unsigned long) __ptr64
?SetMin@SPIN_SLE_NUM@@QEAAXK@Z
; public: void __cdecl BLT_TIME_SPIN_GROUP::SetMinute(int) __ptr64
?SetMinute@BLT_TIME_SPIN_GROUP@@QEAAXH@Z
; public: void __cdecl ELAPSED_TIME_CONTROL::SetMinuteFieldName(long) __ptr64
?SetMinuteFieldName@ELAPSED_TIME_CONTROL@@QEAAXJ@Z
; public: void __cdecl ELAPSED_TIME_CONTROL::SetMinuteMin(long) __ptr64
?SetMinuteMin@ELAPSED_TIME_CONTROL@@QEAAXJ@Z
; public: void __cdecl ELAPSED_TIME_CONTROL::SetMinuteRange(long) __ptr64
?SetMinuteRange@ELAPSED_TIME_CONTROL@@QEAAXJ@Z
; public: void __cdecl ELAPSED_TIME_CONTROL::SetMinuteValue(long) __ptr64
?SetMinuteValue@ELAPSED_TIME_CONTROL@@QEAAXJ@Z
; public: void __cdecl SPIN_GROUP::SetModified(int) __ptr64
?SetModified@SPIN_GROUP@@QEAAXH@Z
; public: void __cdecl BLT_DATE_SPIN_GROUP::SetMonth(int) __ptr64
?SetMonth@BLT_DATE_SPIN_GROUP@@QEAAXH@Z
; public: static void __cdecl POPUP::SetMsgMapTable(struct _MSGMAPENTRY * __ptr64)
?SetMsgMapTable@POPUP@@SAXPEAU_MSGMAPENTRY@@@Z
; protected: virtual long __cdecl BASE_SET_FOCUS_DLG::SetNetworkFocus(struct HWND__ * __ptr64,unsigned short const * __ptr64,enum FOCUS_CACHE_SETTING) __ptr64
?SetNetworkFocus@BASE_SET_FOCUS_DLG@@MEAAJPEAUHWND__@@PEBGW4FOCUS_CACHE_SETTING@@@Z
; protected: virtual long __cdecl STANDALONE_SET_FOCUS_DLG::SetNetworkFocus(struct HWND__ * __ptr64,unsigned short const * __ptr64,enum FOCUS_CACHE_SETTING) __ptr64
?SetNetworkFocus@STANDALONE_SET_FOCUS_DLG@@MEAAJPEAUHWND__@@PEBGW4FOCUS_CACHE_SETTING@@@Z
; private: void __cdecl TIMER_BASE::SetNewTimeDue(void) __ptr64
?SetNewTimeDue@TIMER_BASE@@AEAAXXZ
; public: long __cdecl BASE_ELLIPSIS::SetOriginalStr(unsigned short const * __ptr64) __ptr64
?SetOriginalStr@BASE_ELLIPSIS@@QEAAJPEBG@Z
; protected: void __cdecl DM_DTE::SetPdm(class DISPLAY_MAP * __ptr64) __ptr64
?SetPdm@DM_DTE@@IEAAXPEAVDISPLAY_MAP@@@Z
; public: virtual void __cdecl HIER_LBI::SetPelIndent(unsigned int) __ptr64
?SetPelIndent@HIER_LBI@@UEAAXI@Z
; public: long __cdecl APP_WINDOW::SetPlacement(struct tagWINDOWPLACEMENT const * __ptr64)const  __ptr64
?SetPlacement@APP_WINDOW@@QEBAJPEBUtagWINDOWPLACEMENT@@@Z
; public: static void __cdecl CURSOR::SetPos(class XYPOINT const & __ptr64)
?SetPos@CURSOR@@SAXAEBVXYPOINT@@@Z
; public: void __cdecl SCROLLBAR::SetPos(unsigned int) __ptr64
?SetPos@SCROLLBAR@@QEAAXI@Z
; public: void __cdecl WINDOW::SetPos(class XYPOINT,int,class WINDOW * __ptr64) __ptr64
?SetPos@WINDOW@@QEAAXVXYPOINT@@HPEAV1@@Z
; public: long __cdecl ICON_CONTROL::SetPredefinedIcon(class IDRESOURCE const & __ptr64) __ptr64
?SetPredefinedIcon@ICON_CONTROL@@QEAAJAEBVIDRESOURCE@@@Z
; public: long __cdecl WIN32_THREAD::SetPriority(int) __ptr64
?SetPriority@WIN32_THREAD@@QEAAJH@Z
; public: void __cdecl CHANGEABLE_SPIN_ITEM::SetRange(unsigned long) __ptr64
?SetRange@CHANGEABLE_SPIN_ITEM@@QEAAXK@Z
; public: void __cdecl SCROLLBAR::SetRange(unsigned int,unsigned int) __ptr64
?SetRange@SCROLLBAR@@QEAAXII@Z
; public: void __cdecl SPIN_SLE_NUM::SetRange(unsigned long) __ptr64
?SetRange@SPIN_SLE_NUM@@QEAAXK@Z
; public: void __cdecl SPIN_SLE_STR::SetRange(long) __ptr64
?SetRange@SPIN_SLE_STR@@QEAAXJ@Z
; public: void __cdecl WINDOW::SetRedraw(int) __ptr64
?SetRedraw@WINDOW@@QEAAXH@Z
; public: long __cdecl EDIT_CONTROL::SetSaveValue(unsigned short const * __ptr64) __ptr64
?SetSaveValue@EDIT_CONTROL@@QEAAJPEBG@Z
; public: long __cdecl SPIN_SLE_NUM::SetSaveValue(unsigned long) __ptr64
?SetSaveValue@SPIN_SLE_NUM@@QEAAJK@Z
; public: void __cdecl LISTBOX::SetScrollPos(unsigned int) __ptr64
?SetScrollPos@LISTBOX@@QEAAXI@Z
; public: void __cdecl BLT_TIME_SPIN_GROUP::SetSecond(int) __ptr64
?SetSecond@BLT_TIME_SPIN_GROUP@@QEAAXH@Z
; public: void __cdecl ELAPSED_TIME_CONTROL::SetSecondFieldName(long) __ptr64
?SetSecondFieldName@ELAPSED_TIME_CONTROL@@QEAAXJ@Z
; public: void __cdecl ELAPSED_TIME_CONTROL::SetSecondMin(long) __ptr64
?SetSecondMin@ELAPSED_TIME_CONTROL@@QEAAXJ@Z
; public: void __cdecl ELAPSED_TIME_CONTROL::SetSecondRange(long) __ptr64
?SetSecondRange@ELAPSED_TIME_CONTROL@@QEAAXJ@Z
; public: void __cdecl ELAPSED_TIME_CONTROL::SetSecondValue(long) __ptr64
?SetSecondValue@ELAPSED_TIME_CONTROL@@QEAAXJ@Z
; public: void __cdecl GRAPHICAL_BUTTON_WITH_DISABLE::SetSelected(int) __ptr64
?SetSelected@GRAPHICAL_BUTTON_WITH_DISABLE@@QEAAXH@Z
; private: void __cdecl LOGON_HOURS_CONTROL::SetSelectedCells(int) __ptr64
?SetSelectedCells@LOGON_HOURS_CONTROL@@AEAAXH@Z
; private: void __cdecl LOGON_HOURS_CONTROL::SetSelection(int) __ptr64
?SetSelection@LOGON_HOURS_CONTROL@@AEAAXH@Z
; private: void __cdecl LOGON_HOURS_CONTROL::SetSelection(int,int) __ptr64
?SetSelection@LOGON_HOURS_CONTROL@@AEAAXHH@Z
; public: void __cdecl MAGIC_GROUP::SetSelection(unsigned int) __ptr64
?SetSelection@MAGIC_GROUP@@QEAAXI@Z
; public: void __cdecl RADIO_GROUP::SetSelection(unsigned int) __ptr64
?SetSelection@RADIO_GROUP@@QEAAXI@Z
; protected: void __cdecl RADIO_GROUP::SetSelectionDontNotifyGroups(unsigned int) __ptr64
?SetSelectionDontNotifyGroups@RADIO_GROUP@@IEAAXI@Z
; public: void __cdecl CONSOLE_ELLIPSIS::SetSize(int) __ptr64
?SetSize@CONSOLE_ELLIPSIS@@QEAAXH@Z
; public: void __cdecl SLT_ELLIPSIS::SetSize(int,int,int) __ptr64
?SetSize@SLT_ELLIPSIS@@QEAAXHHH@Z
; public: void __cdecl WINDOW::SetSize(int,int,int) __ptr64
?SetSize@WINDOW@@QEAAXHHH@Z
; public: void __cdecl WINDOW::SetSize(class XYDIMENSION,int) __ptr64
?SetSize@WINDOW@@QEAAXVXYDIMENSION@@H@Z
; public: void __cdecl WIN_ELLIPSIS::SetSize(int,int) __ptr64
?SetSize@WIN_ELLIPSIS@@QEAAXHH@Z
; public: void __cdecl CHANGEABLE_SPIN_ITEM::SetSmallDecValue(unsigned long) __ptr64
?SetSmallDecValue@CHANGEABLE_SPIN_ITEM@@QEAAXK@Z
; public: void __cdecl CHANGEABLE_SPIN_ITEM::SetSmallIncValue(unsigned long) __ptr64
?SetSmallIncValue@CHANGEABLE_SPIN_ITEM@@QEAAXK@Z
; protected: void __cdecl NT_GROUP_BROWSER_DIALOG::SetSourceDialog(class NT_GROUP_BROWSER_DIALOG * __ptr64) __ptr64
?SetSourceDialog@NT_GROUP_BROWSER_DIALOG@@IEAAXPEAV1@@Z
; private: long __cdecl ELAPSED_TIME_CONTROL::SetSpinItemAccKey(class SPIN_ITEM * __ptr64,class SLT & __ptr64,int) __ptr64
?SetSpinItemAccKey@ELAPSED_TIME_CONTROL@@AEAAJPEAVSPIN_ITEM@@AEAVSLT@@H@Z
; protected: void __cdecl SLE_STRLB_GROUP::SetState(void)const  __ptr64
?SetState@SLE_STRLB_GROUP@@IEBAXXZ
; protected: void __cdecl STATE_BUTTON_CONTROL::SetState(unsigned int) __ptr64
?SetState@STATE_BUTTON_CONTROL@@IEAAXI@Z
; public: int __cdecl STLBITEM::SetState(int) __ptr64
?SetState@STLBITEM@@QEAAHH@Z
; private: void __cdecl WIN32_THREAD::SetState(enum _THREAD_STATE) __ptr64
?SetState@WIN32_THREAD@@AEAAXW4_THREAD_STATE@@@Z
; public: void __cdecl GRAPHICAL_BUTTON::SetStatus(unsigned int) __ptr64
?SetStatus@GRAPHICAL_BUTTON@@QEAAXI@Z
; public: void __cdecl GRAPHICAL_BUTTON::SetStatus(struct HBITMAP__ * __ptr64) __ptr64
?SetStatus@GRAPHICAL_BUTTON@@QEAAXPEAUHBITMAP__@@@Z
; private: void __cdecl SPIN_SLE_STR::SetStr(long) __ptr64
?SetStr@SPIN_SLE_STR@@AEAAXJ@Z
; private: long __cdecl GET_FNAME_BASE_DLG::SetStringField(unsigned short * __ptr64 * __ptr64,class NLS_STR const & __ptr64) __ptr64
?SetStringField@GET_FNAME_BASE_DLG@@AEAAJPEAPEAGAEBVNLS_STR@@@Z
; public: void __cdecl BASE_ELLIPSIS::SetStyle(enum ELLIPSIS_STYLE) __ptr64
?SetStyle@BASE_ELLIPSIS@@QEAAXW4ELLIPSIS_STYLE@@@Z
; public: void __cdecl WINDOW::SetStyle(unsigned long) __ptr64
?SetStyle@WINDOW@@QEAAXK@Z
; protected: virtual void __cdecl CONTROL_VALUE::SetTabStop(int) __ptr64
?SetTabStop@CONTROL_VALUE@@MEAAXH@Z
; protected: virtual void __cdecl CONTROL_WINDOW::SetTabStop(int) __ptr64
?SetTabStop@CONTROL_WINDOW@@MEAAXH@Z
; public: long __cdecl ACCOUNT_NAMES_MLE::SetTargetDomain(unsigned short const * __ptr64) __ptr64
?SetTargetDomain@ACCOUNT_NAMES_MLE@@QEAAJPEBG@Z
; public: long __cdecl GET_FNAME_BASE_DLG::SetText(class NLS_STR const & __ptr64) __ptr64
?SetText@GET_FNAME_BASE_DLG@@QEAAJAEBVNLS_STR@@@Z
; public: int __cdecl MENUITEM::SetText(unsigned short const * __ptr64) __ptr64
?SetText@MENUITEM@@QEAAHPEBG@Z
; public: long __cdecl SLT_ELLIPSIS::SetText(class NLS_STR const & __ptr64) __ptr64
?SetText@SLT_ELLIPSIS@@QEAAJAEBVNLS_STR@@@Z
; public: long __cdecl SLT_ELLIPSIS::SetText(unsigned short const * __ptr64) __ptr64
?SetText@SLT_ELLIPSIS@@QEAAJPEBG@Z
; public: void __cdecl WINDOW::SetText(class NLS_STR const & __ptr64) __ptr64
?SetText@WINDOW@@QEAAXAEBVNLS_STR@@@Z
; public: void __cdecl WINDOW::SetText(unsigned short const * __ptr64) __ptr64
?SetText@WINDOW@@QEAAXPEBG@Z
; public: unsigned int __cdecl DEVICE_CONTEXT::SetTextAlign(unsigned int) __ptr64
?SetTextAlign@DEVICE_CONTEXT@@QEAAII@Z
; public: unsigned long __cdecl DEVICE_CONTEXT::SetTextColor(unsigned long) __ptr64
?SetTextColor@DEVICE_CONTEXT@@QEAAKK@Z
; public: void __cdecl LIST_CONTROL::SetTopIndex(int) __ptr64
?SetTopIndex@LIST_CONTROL@@QEAAXH@Z
; public: long __cdecl BROWSER_SUBJECT::SetUserBrowserLBI(class USER_BROWSER_LBI * __ptr64) __ptr64
?SetUserBrowserLBI@BROWSER_SUBJECT@@QEAAJPEAVUSER_BROWSER_LBI@@@Z
; public: void __cdecl CHANGEABLE_SPIN_ITEM::SetValue(unsigned long) __ptr64
?SetValue@CHANGEABLE_SPIN_ITEM@@QEAAXK@Z
; public: void __cdecl DEC_SLT::SetValue(long) __ptr64
?SetValue@DEC_SLT@@QEAAXJ@Z
; public: void __cdecl DEC_SLT::SetValue(unsigned long) __ptr64
?SetValue@DEC_SLT@@QEAAXK@Z
; public: void __cdecl XYDIMENSION::SetWidth(unsigned int) __ptr64
?SetWidth@XYDIMENSION@@QEAAXI@Z
; public: void __cdecl XYPOINT::SetX(int) __ptr64
?SetX@XYPOINT@@QEAAXH@Z
; public: void __cdecl XYPOINT::SetY(int) __ptr64
?SetY@XYPOINT@@QEAAXH@Z
; public: void __cdecl BLT_DATE_SPIN_GROUP::SetYear(int) __ptr64
?SetYear@BLT_DATE_SPIN_GROUP@@QEAAXH@Z
; public: static void __cdecl CURSOR::Show(int)
?Show@CURSOR@@SAXH@Z
; public: int __cdecl POPUP::Show(void) __ptr64
?Show@POPUP@@QEAAHXZ
; public: int __cdecl WINDOW::Show(int) __ptr64
?Show@WINDOW@@QEAAHH@Z
; protected: void __cdecl BASE_SET_FOCUS_DLG::ShowArea(int) __ptr64
?ShowArea@BASE_SET_FOCUS_DLG@@IEAAXH@Z
; protected: void __cdecl EXPANDABLE_DIALOG::ShowArea(int) __ptr64
?ShowArea@EXPANDABLE_DIALOG@@IEAAXH@Z
; private: void __cdecl H_SPLITTER_BAR::ShowDragBar(class XYPOINT const & __ptr64) __ptr64
?ShowDragBar@H_SPLITTER_BAR@@AEAAXAEBVXYPOINT@@@Z
; public: void __cdecl WINDOW::ShowFirst(void) __ptr64
?ShowFirst@WINDOW@@QEAAXXZ
; private: void __cdecl H_SPLITTER_BAR::ShowSpecialCursor(int) __ptr64
?ShowSpecialCursor@H_SPLITTER_BAR@@AEAAXH@Z
; public: void __cdecl WIN32_THREAD::Sleep(unsigned int) __ptr64
?Sleep@WIN32_THREAD@@QEAAXI@Z
; public: void __cdecl USER_LBI_CACHE::Sort(void) __ptr64
?Sort@USER_LBI_CACHE@@QEAAXXZ
; private: static unsigned long __cdecl WIN32_THREAD::StartThread(void * __ptr64)
?StartThread@WIN32_THREAD@@CAKPEAX@Z
; private: long __cdecl LB_COL_WIDTHS::StretchForFonts(struct HWND__ * __ptr64,unsigned short const * __ptr64) __ptr64
?StretchForFonts@LB_COL_WIDTHS@@AEAAJPEAUHWND__@@PEBG@Z
; public: long __cdecl MASK_MAP::StringToBits(class NLS_STR const & __ptr64,class BITFIELD * __ptr64,int,unsigned int * __ptr64) __ptr64
?StringToBits@MASK_MAP@@QEAAJAEBVNLS_STR@@PEAVBITFIELD@@HPEAI@Z
; protected: long __cdecl ACCOUNT_NAMES_MLE::StripDomainIfWellKnown(class NLS_STR * __ptr64) __ptr64
?StripDomainIfWellKnown@ACCOUNT_NAMES_MLE@@IEAAJPEAVNLS_STR@@@Z
; protected: __int64 __cdecl CUSTOM_CONTROL::SubClassWndProc(class EVENT const & __ptr64) __ptr64
?SubClassWndProc@CUSTOM_CONTROL@@IEAA_JAEBVEVENT@@@Z
; public: long __cdecl WIN32_THREAD::Suspend(void) __ptr64
?Suspend@WIN32_THREAD@@QEAAJXZ
; public: static void __cdecl BASE_ELLIPSIS::Term(void)
?Term@BASE_ELLIPSIS@@SAXXZ
; public: static void __cdecl BLT::Term(struct HINSTANCE__ * __ptr64)
?Term@BLT@@SAXPEAUHINSTANCE__@@@Z
; public: static void __cdecl BLTIMP::Term(void)
?Term@BLTIMP@@SAXXZ
; public: static void __cdecl BLT_MASTER_TIMER::Term(void)
?Term@BLT_MASTER_TIMER@@SAXXZ
; public: static void __cdecl CLIENT_WINDOW::Term(void)
?Term@CLIENT_WINDOW@@SAXXZ
; public: static void __cdecl POPUP::Term(void)
?Term@POPUP@@SAXXZ
; public: static void __cdecl BLT::TermDLL(void)
?TermDLL@BLT@@SAXXZ
; public: long __cdecl WIN32_THREAD::Terminate(unsigned int) __ptr64
?Terminate@WIN32_THREAD@@QEAAJI@Z
; public: int __cdecl DEVICE_CONTEXT::TextOutW(class NLS_STR const & __ptr64,class XYPOINT)const  __ptr64
?TextOutW@DEVICE_CONTEXT@@QEBAHAEBVNLS_STR@@VXYPOINT@@@Z
; public: int __cdecl DEVICE_CONTEXT::TextOutW(class NLS_STR const & __ptr64,class XYPOINT,struct tagRECT const * __ptr64)const  __ptr64
?TextOutW@DEVICE_CONTEXT@@QEBAHAEBVNLS_STR@@VXYPOINT@@PEBUtagRECT@@@Z
; public: int __cdecl DEVICE_CONTEXT::TextOutW(unsigned short const * __ptr64,int,int,int)const  __ptr64
?TextOutW@DEVICE_CONTEXT@@QEBAHPEBGHHH@Z
; public: int __cdecl DEVICE_CONTEXT::TextOutW(unsigned short const * __ptr64,int,int,int,struct tagRECT const * __ptr64)const  __ptr64
?TextOutW@DEVICE_CONTEXT@@QEBAHPEBGHHHPEBUtagRECT@@@Z
; public: int __cdecl CHECKBOX::Toggle(void) __ptr64
?Toggle@CHECKBOX@@QEAAHXZ
; public: long __cdecl LM_OLLB::ToggleDomain(int) __ptr64
?ToggleDomain@LM_OLLB@@QEAAJH@Z
; public: long __cdecl POPUP_MENU::Track(class PWND2HWND const & __ptr64,unsigned int,int,int,struct tagRECT const * __ptr64)const  __ptr64
?Track@POPUP_MENU@@QEBAJAEBVPWND2HWND@@IHHPEBUtagRECT@@@Z
; public: int __cdecl ACCELTABLE::Translate(class WINDOW const * __ptr64,struct tagMSG * __ptr64)const  __ptr64
?Translate@ACCELTABLE@@QEBAHPEBVWINDOW@@PEAUtagMSG@@@Z
; public: void __cdecl TIMER_BASE::TriggerNow(void) __ptr64
?TriggerNow@TIMER_BASE@@QEAAXXZ
; long __cdecl TrimLeading(class NLS_STR * __ptr64,unsigned short const * __ptr64)
?TrimLeading@@YAJPEAVNLS_STR@@PEBG@Z
; long __cdecl TrimTrailing(class NLS_STR * __ptr64,unsigned short const * __ptr64)
?TrimTrailing@@YAJPEAVNLS_STR@@PEBG@Z
; public: void __cdecl AUTO_CURSOR::TurnOff(void) __ptr64
?TurnOff@AUTO_CURSOR@@QEAAXXZ
; public: void __cdecl AUTO_CURSOR::TurnOn(void) __ptr64
?TurnOn@AUTO_CURSOR@@QEAAXXZ
; public: long __cdecl BROWSER_DOMAIN::UnRequestAccountData(void) __ptr64
?UnRequestAccountData@BROWSER_DOMAIN@@QEAAJXZ
; public: long __cdecl DOMAIN_FILL_THREAD::UnRequestAccountData(void) __ptr64
?UnRequestAccountData@DOMAIN_FILL_THREAD@@QEAAJXZ
; public: virtual void __cdecl UI_EXT_MGR::UnloadExtensions(void) __ptr64
?UnloadExtensions@UI_EXT_MGR@@UEAAXXZ
; private: void __cdecl LOGON_HOURS_CONTROL::UnloadLabels(void) __ptr64
?UnloadLabels@LOGON_HOURS_CONTROL@@AEAAXXZ
; protected: virtual void __cdecl USER_LBI_CACHE::UnlockCache(void) __ptr64
?UnlockCache@USER_LBI_CACHE@@MEAAXXZ
; private: static void __cdecl BLTIMP::Unwind(enum BLT_CTOR_STATE)
?Unwind@BLTIMP@@CAXW4BLT_CTOR_STATE@@@Z
; public: virtual void __cdecl CHANGEABLE_SPIN_ITEM::Update(void) __ptr64
?Update@CHANGEABLE_SPIN_ITEM@@UEAAXXZ
; public: virtual void __cdecl SPIN_SLE_NUM::Update(void) __ptr64
?Update@SPIN_SLE_NUM@@UEAAXXZ
; public: virtual void __cdecl SPIN_SLE_STR::Update(void) __ptr64
?Update@SPIN_SLE_STR@@UEAAXXZ
; protected: void __cdecl NT_FIND_ACCOUNT_DIALOG::UpdateButtonState(void) __ptr64
?UpdateButtonState@NT_FIND_ACCOUNT_DIALOG@@IEAAXXZ
; protected: virtual void __cdecl NT_GROUP_BROWSER_DIALOG::UpdateButtonState(void) __ptr64
?UpdateButtonState@NT_GROUP_BROWSER_DIALOG@@MEAAXXZ
; protected: virtual void __cdecl NT_LOCALGROUP_BROWSER_DIALOG::UpdateButtonState(void) __ptr64
?UpdateButtonState@NT_LOCALGROUP_BROWSER_DIALOG@@MEAAXXZ
; protected: void __cdecl NT_USER_BROWSER_DIALOG::UpdateButtonState(void) __ptr64
?UpdateButtonState@NT_USER_BROWSER_DIALOG@@IEAAXXZ
; private: void __cdecl BASE_SET_FOCUS_DLG::UpdateRasMode(void) __ptr64
?UpdateRasMode@BASE_SET_FOCUS_DLG@@AEAAXXZ
; public: virtual long __cdecl CONTROL_WINDOW::Validate(void) __ptr64
?Validate@CONTROL_WINDOW@@UEAAJXZ
; private: long __cdecl DIALOG_WINDOW::Validate(void) __ptr64
?Validate@DIALOG_WINDOW@@AEAAJXZ
; public: virtual long __cdecl ICANON_SLE::Validate(void) __ptr64
?Validate@ICANON_SLE@@UEAAJXZ
; public: virtual long __cdecl SPIN_SLE_NUM::Validate(void) __ptr64
?Validate@SPIN_SLE_NUM@@UEAAJXZ
; protected: virtual long __cdecl SLE_STRLB_GROUP::W_Add(unsigned short const * __ptr64) __ptr64
?W_Add@SLE_STRLB_GROUP@@MEAAJPEBG@Z
; private: virtual unsigned short __cdecl GLOBAL_ATOM::W_AddAtom(unsigned short const * __ptr64)const  __ptr64
?W_AddAtom@GLOBAL_ATOM@@EEBAGPEBG@Z
; private: virtual unsigned short __cdecl LOCAL_ATOM::W_AddAtom(unsigned short const * __ptr64)const  __ptr64
?W_AddAtom@LOCAL_ATOM@@EEBAGPEBG@Z
; protected: long __cdecl MENU_BASE::W_Append(void const * __ptr64,unsigned __int64,unsigned int)const  __ptr64
?W_Append@MENU_BASE@@IEBAJPEBX_KI@Z
; private: long __cdecl UI_MENU_EXT::W_BiasMenuIds(struct HMENU__ * __ptr64,unsigned long) __ptr64
?W_BiasMenuIds@UI_MENU_EXT@@AEAAJPEAUHMENU__@@K@Z
; private: class LBI * __ptr64 __cdecl USER_LBI_CACHE::W_GetLBI(int) __ptr64
?W_GetLBI@USER_LBI_CACHE@@AEAAPEAVLBI@@H@Z
; private: int __cdecl USER_LBI_CACHE::W_GrowCache(int) __ptr64
?W_GrowCache@USER_LBI_CACHE@@AEAAHH@Z
; protected: long __cdecl MENU_BASE::W_Insert(void const * __ptr64,unsigned int,unsigned __int64,unsigned int)const  __ptr64
?W_Insert@MENU_BASE@@IEBAJPEBXI_KI@Z
; protected: virtual class UI_EXT * __ptr64 __cdecl UI_EXT_MGR::W_LoadExtension(unsigned short const * __ptr64,unsigned long) __ptr64
?W_LoadExtension@UI_EXT_MGR@@MEAAPEAVUI_EXT@@PEBGK@Z
; protected: long __cdecl MENU_BASE::W_Modify(void const * __ptr64,unsigned int,unsigned __int64,unsigned int)const  __ptr64
?W_Modify@MENU_BASE@@IEBAJPEBXI_KI@Z
; public: void __cdecl BROWSER_DOMAIN_LBI::W_Paint(class BROWSER_DOMAIN_CB * __ptr64,class LISTBOX * __ptr64,struct HDC__ * __ptr64,struct tagRECT const * __ptr64,struct GUILTT_INFO * __ptr64)const  __ptr64
?W_Paint@BROWSER_DOMAIN_LBI@@QEBAXPEAVBROWSER_DOMAIN_CB@@PEAVLISTBOX@@PEAUHDC__@@PEBUtagRECT@@PEAUGUILTT_INFO@@@Z
; protected: int __cdecl MENU_BASE::W_QueryItemText(unsigned short * __ptr64,unsigned int,unsigned int,unsigned int)const  __ptr64
?W_QueryItemText@MENU_BASE@@IEBAHPEAGIII@Z
; private: virtual long __cdecl GLOBAL_ATOM::W_QueryString(unsigned short * __ptr64,unsigned int)const  __ptr64
?W_QueryString@GLOBAL_ATOM@@EEBAJPEAGI@Z
; private: virtual long __cdecl LOCAL_ATOM::W_QueryString(unsigned short * __ptr64,unsigned int)const  __ptr64
?W_QueryString@LOCAL_ATOM@@EEBAJPEAGI@Z
; private: long __cdecl ICON_CONTROL::W_SetIcon(class IDRESOURCE const & __ptr64,int) __ptr64
?W_SetIcon@ICON_CONTROL@@AEAAJAEBVIDRESOURCE@@H@Z
; public: long __cdecl WIN32_SYNC_BASE::Wait(unsigned int) __ptr64
?Wait@WIN32_SYNC_BASE@@QEAAJI@Z
; public: long __cdecl BROWSER_DOMAIN::WaitForAdminAuthority(unsigned long,int * __ptr64)const  __ptr64
?WaitForAdminAuthority@BROWSER_DOMAIN@@QEBAJKPEAH@Z
; public: long __cdecl DOMAIN_FILL_THREAD::WaitForAdminAuthority(unsigned long,int * __ptr64)const  __ptr64
?WaitForAdminAuthority@DOMAIN_FILL_THREAD@@QEBAJKPEAH@Z
; private: int __cdecl OPEN_DIALOG_BASE::WarnCloseMulti(void) __ptr64
?WarnCloseMulti@OPEN_DIALOG_BASE@@AEAAHXZ
; private: int __cdecl OPEN_DIALOG_BASE::WarnCloseSingle(class OPEN_LBI_BASE * __ptr64) __ptr64
?WarnCloseSingle@OPEN_DIALOG_BASE@@AEAAHPEAVOPEN_LBI_BASE@@@Z
; private: int __cdecl ARRAY_CONTROLVAL_CID_PAIR::WithinRange(unsigned int)const  __ptr64
?WithinRange@ARRAY_CONTROLVAL_CID_PAIR@@AEBAHI@Z
; public: static __int64 __cdecl CLIENT_WINDOW::WndProc(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64)
?WndProc@CLIENT_WINDOW@@SA_JPEAUHWND__@@I_K_J@Z
; public: static __int64 __cdecl CUSTOM_CONTROL::WndProc(struct HWND__ * __ptr64,unsigned int,unsigned __int64,__int64)
?WndProc@CUSTOM_CONTROL@@SA_JPEAUHWND__@@I_K_J@Z
; int __cdecl max(int,int)
?max@@YAHHH@Z
; int __cdecl min(int,int)
?min@@YAHHH@Z
; public: unsigned long (__cdecl*__cdecl GET_FNAME_BASE_DLG::pfExtendedError(void)const  __ptr64)(void)
?pfExtendedError@GET_FNAME_BASE_DLG@@QEBAP6AKXZXZ
; public: int (__cdecl*__cdecl GET_FNAME_BASE_DLG::pfGetOpenFileName(void)const  __ptr64)(struct tagOFNW * __ptr64)
?pfGetOpenFileName@GET_FNAME_BASE_DLG@@QEBAP6AHPEAUtagOFNW@@@ZXZ
; public: int (__cdecl*__cdecl GET_FNAME_BASE_DLG::pfGetSaveFileName(void)const  __ptr64)(struct tagOFNW * __ptr64)
?pfGetSaveFileName@GET_FNAME_BASE_DLG@@QEBAP6AHPEAUtagOFNW@@@ZXZ
BltCCWndProc
BltDlgProc
BltWndProc
CloseUserBrowser
EnumUserBrowserSelection
LongToHandle
OpenUserBrowser
PtrToUlong
ShellDlgProc
UIntToPtr
