; 
; 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
