; 
; Exports of file NETUI2.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY NETUI2.dll
EXPORTS
; public: __thiscall ACCELTABLE::ACCELTABLE(class IDRESOURCE const &)
??0ACCELTABLE@@QAE@ABVIDRESOURCE@@@Z
; public: __thiscall ACCOUNT_NAMES_MLE::ACCOUNT_NAMES_MLE(class OWNER_WINDOW *,unsigned int,unsigned short const *,class NT_USER_BROWSER_DIALOG *,int,unsigned long,enum FontType)
??0ACCOUNT_NAMES_MLE@@QAE@PAVOWNER_WINDOW@@IPBGPAVNT_USER_BROWSER_DIALOG@@HKW4FontType@@@Z
; public: __thiscall ACTIVATION_EVENT::ACTIVATION_EVENT(unsigned int,unsigned int,long)
??0ACTIVATION_EVENT@@QAE@IIJ@Z
; public: __thiscall ALIAS_STR::ALIAS_STR(unsigned short const *)
??0ALIAS_STR@@QAE@PBG@Z
; public: __thiscall ALLOC_STR::ALLOC_STR(unsigned short *,unsigned int)
??0ALLOC_STR@@QAE@PAGI@Z
; protected: __thiscall APPLICATION::APPLICATION(struct HINSTANCE__ *,int,unsigned int,unsigned int,unsigned int,unsigned int)
??0APPLICATION@@IAE@PAUHINSTANCE__@@HIIII@Z
; protected: __thiscall APP_WINDOW::APP_WINDOW(class NLS_STR const &,class IDRESOURCE const &,class IDRESOURCE const &)
??0APP_WINDOW@@IAE@ABVNLS_STR@@ABVIDRESOURCE@@1@Z
; protected: __thiscall APP_WINDOW::APP_WINDOW(class XYPOINT,class XYDIMENSION,class NLS_STR const &,class IDRESOURCE const &,class IDRESOURCE const &)
??0APP_WINDOW@@IAE@VXYPOINT@@VXYDIMENSION@@ABVNLS_STR@@ABVIDRESOURCE@@3@Z
; public: __thiscall ARRAY_CONTROLVAL_CID_PAIR::ARRAY_CONTROLVAL_CID_PAIR(unsigned int)
??0ARRAY_CONTROLVAL_CID_PAIR@@QAE@I@Z
; public: __thiscall ARRAY_CONTROLVAL_CID_PAIR::ARRAY_CONTROLVAL_CID_PAIR(class CONTROLVAL_CID_PAIR *,unsigned int,int)
??0ARRAY_CONTROLVAL_CID_PAIR@@QAE@PAVCONTROLVAL_CID_PAIR@@IH@Z
; public: __thiscall ARRAY_LIST_CONTROLVAL_CID_PAIR::ARRAY_LIST_CONTROLVAL_CID_PAIR(unsigned int)
??0ARRAY_LIST_CONTROLVAL_CID_PAIR@@QAE@I@Z
; public: __thiscall ARROW_BUTTON::ARROW_BUTTON(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int,unsigned int)
??0ARROW_BUTTON@@QAE@PAVOWNER_WINDOW@@IIII@Z
; public: __thiscall ARROW_BUTTON::ARROW_BUTTON(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long)
??0ARROW_BUTTON@@QAE@PAVOWNER_WINDOW@@IIIIVXYPOINT@@VXYDIMENSION@@K@Z
; public: __thiscall ASSOCHCFILE::ASSOCHCFILE(struct HINSTANCE__ *,long,unsigned long,unsigned long)
??0ASSOCHCFILE@@QAE@PAUHINSTANCE__@@JKK@Z
; public: __thiscall ASSOCHWNDDISP::ASSOCHWNDDISP(struct HWND__ *,class DISPATCHER const *)
??0ASSOCHWNDDISP@@QAE@PAUHWND__@@PBVDISPATCHER@@@Z
; public: __thiscall ASSOCHWNDPDLG::ASSOCHWNDPDLG(struct HWND__ *,class DIALOG_WINDOW const *)
??0ASSOCHWNDPDLG@@QAE@PAUHWND__@@PBVDIALOG_WINDOW@@@Z
; public: __thiscall ASSOCHWNDPWND::ASSOCHWNDPWND(struct HWND__ *,class CLIENT_WINDOW const *)
??0ASSOCHWNDPWND@@QAE@PAUHWND__@@PBVCLIENT_WINDOW@@@Z
; public: __thiscall ASSOCHWNDTHIS::ASSOCHWNDTHIS(struct HWND__ *,void const *)
??0ASSOCHWNDTHIS@@QAE@PAUHWND__@@PBX@Z
; protected: __thiscall ATOM_BASE::ATOM_BASE(unsigned short)
??0ATOM_BASE@@IAE@G@Z
; protected: __thiscall ATOM_BASE::ATOM_BASE(void)
??0ATOM_BASE@@IAE@XZ
; public: __thiscall AUDIT_CHECKBOXES::AUDIT_CHECKBOXES(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int,class NLS_STR const &,class BITFIELD const &)
??0AUDIT_CHECKBOXES@@QAE@PAVOWNER_WINDOW@@IIIABVNLS_STR@@ABVBITFIELD@@@Z
; public: __thiscall AUTO_CURSOR::AUTO_CURSOR(unsigned short const *)
??0AUTO_CURSOR@@QAE@PBG@Z
; protected: __thiscall BASE::BASE(void)
??0BASE@@IAE@XZ
; public: __thiscall BASE::BASE(class BASE const &)
??0BASE@@QAE@ABV0@@Z
; protected: __thiscall BASE_ELLIPSIS::BASE_ELLIPSIS(enum ELLIPSIS_STYLE)
??0BASE_ELLIPSIS@@IAE@W4ELLIPSIS_STYLE@@@Z
; public: __thiscall BASE_PASSWORD_DIALOG::BASE_PASSWORD_DIALOG(struct HWND__ *,unsigned short const *,unsigned int,unsigned int,unsigned long,unsigned short const *,unsigned int,unsigned int,unsigned short const *,unsigned int,unsigned short const *)
??0BASE_PASSWORD_DIALOG@@QAE@PAUHWND__@@PBGIIK1II1I1@Z
; public: __thiscall BASE_SET_FOCUS_DLG::BASE_SET_FOCUS_DLG(struct HWND__ * const,enum SELECTION_TYPE,unsigned long,unsigned short const *,unsigned long,unsigned short const *,unsigned long)
??0BASE_SET_FOCUS_DLG@@QAE@QAUHWND__@@W4SELECTION_TYPE@@KPBGK2K@Z
; public: __thiscall BIT_MAP::BIT_MAP(class IDRESOURCE const &)
??0BIT_MAP@@QAE@ABVIDRESOURCE@@@Z
; public: __thiscall BIT_MAP::BIT_MAP(struct HBITMAP__ *)
??0BIT_MAP@@QAE@PAUHBITMAP__@@@Z
; public: __thiscall BLT_BACKGROUND_EDIT::BLT_BACKGROUND_EDIT(class OWNER_WINDOW *,unsigned int)
??0BLT_BACKGROUND_EDIT@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall BLT_COMBOBOX::BLT_COMBOBOX(class OWNER_WINDOW *,unsigned int,int,enum FontType)
??0BLT_COMBOBOX@@QAE@PAVOWNER_WINDOW@@IHW4FontType@@@Z
; public: __thiscall BLT_COMBOBOX::BLT_COMBOBOX(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType)
??0BLT_COMBOBOX@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@@Z
; public: __thiscall BLT_DATE_SPIN_GROUP::BLT_DATE_SPIN_GROUP(class OWNER_WINDOW *,class INTL_PROFILE const &,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int)
??0BLT_DATE_SPIN_GROUP@@QAE@PAVOWNER_WINDOW@@ABVINTL_PROFILE@@IIIIIIIII@Z
; public: __thiscall BLT_LISTBOX::BLT_LISTBOX(class OWNER_WINDOW *,unsigned int,int,enum FontType,int)
??0BLT_LISTBOX@@QAE@PAVOWNER_WINDOW@@IHW4FontType@@H@Z
; public: __thiscall BLT_LISTBOX::BLT_LISTBOX(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType,int)
??0BLT_LISTBOX@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@H@Z
; public: __thiscall BLT_LISTBOX_HAW::BLT_LISTBOX_HAW(class OWNER_WINDOW *,unsigned int,int,enum FontType,int)
??0BLT_LISTBOX_HAW@@QAE@PAVOWNER_WINDOW@@IHW4FontType@@H@Z
; public: __thiscall BLT_LISTBOX_HAW::BLT_LISTBOX_HAW(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType,int)
??0BLT_LISTBOX_HAW@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@H@Z
; public: __thiscall BLT_MASTER_TIMER::BLT_MASTER_TIMER(void)
??0BLT_MASTER_TIMER@@QAE@XZ
; public: __thiscall BLT_SCRATCH::BLT_SCRATCH(unsigned int)
??0BLT_SCRATCH@@QAE@I@Z
; public: __thiscall BLT_TIME_SPIN_GROUP::BLT_TIME_SPIN_GROUP(class OWNER_WINDOW *,class INTL_PROFILE const &,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int)
??0BLT_TIME_SPIN_GROUP@@QAE@PAVOWNER_WINDOW@@ABVINTL_PROFILE@@IIIIIIIIII@Z
; public: __thiscall BROWSER_DOMAIN::BROWSER_DOMAIN(unsigned short const *,void *,int,int)
??0BROWSER_DOMAIN@@QAE@PBGPAXHH@Z
; public: __thiscall BROWSER_DOMAIN_CB::BROWSER_DOMAIN_CB(class OWNER_WINDOW *,unsigned int)
??0BROWSER_DOMAIN_CB@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall BROWSER_DOMAIN_LB::BROWSER_DOMAIN_LB(class OWNER_WINDOW *,unsigned int,class BROWSER_DOMAIN_CB *)
??0BROWSER_DOMAIN_LB@@QAE@PAVOWNER_WINDOW@@IPAVBROWSER_DOMAIN_CB@@@Z
; public: __thiscall BROWSER_DOMAIN_LBI::BROWSER_DOMAIN_LBI(class BROWSER_DOMAIN *)
??0BROWSER_DOMAIN_LBI@@QAE@PAVBROWSER_DOMAIN@@@Z
; public: __thiscall BROWSER_DOMAIN_LBI_PB::BROWSER_DOMAIN_LBI_PB(class BROWSER_DOMAIN_LBI *)
??0BROWSER_DOMAIN_LBI_PB@@QAE@PAVBROWSER_DOMAIN_LBI@@@Z
; public: __thiscall BROWSER_SUBJECT::BROWSER_SUBJECT(void)
??0BROWSER_SUBJECT@@QAE@XZ
; public: __thiscall BROWSER_SUBJECT_ITER::BROWSER_SUBJECT_ITER(class NT_USER_BROWSER_DIALOG *)
??0BROWSER_SUBJECT_ITER@@QAE@PAVNT_USER_BROWSER_DIALOG@@@Z
; protected: __thiscall BUTTON_CONTROL::BUTTON_CONTROL(class OWNER_WINDOW *,unsigned int)
??0BUTTON_CONTROL@@IAE@PAVOWNER_WINDOW@@I@Z
; protected: __thiscall BUTTON_CONTROL::BUTTON_CONTROL(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long)
??0BUTTON_CONTROL@@IAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@K@Z
; public: __thiscall CANCEL_TASK_DIALOG::CANCEL_TASK_DIALOG(unsigned int,struct HWND__ *,unsigned short const *,unsigned long,long,enum ELLIPSIS_STYLE)
??0CANCEL_TASK_DIALOG@@QAE@IPAUHWND__@@PBGKJW4ELLIPSIS_STYLE@@@Z
; public: __thiscall CHANGEABLE_SPIN_ITEM::CHANGEABLE_SPIN_ITEM(class CONTROL_WINDOW *,unsigned long,unsigned long,unsigned long,int)
??0CHANGEABLE_SPIN_ITEM@@QAE@PAVCONTROL_WINDOW@@KKKH@Z
; public: __thiscall CHECKBOX::CHECKBOX(class OWNER_WINDOW *,unsigned int)
??0CHECKBOX@@QAE@PAVOWNER_WINDOW@@I@Z
; protected: __thiscall CLIENT_WINDOW::CLIENT_WINDOW(unsigned long,class WINDOW const *,unsigned short const *)
??0CLIENT_WINDOW@@IAE@KPBVWINDOW@@PBG@Z
; protected: __thiscall CLIENT_WINDOW::CLIENT_WINDOW(void)
??0CLIENT_WINDOW@@IAE@XZ
; public: __thiscall COMBOBOX::COMBOBOX(class OWNER_WINDOW *,unsigned int,unsigned int)
??0COMBOBOX@@QAE@PAVOWNER_WINDOW@@II@Z
; public: __thiscall COMBOBOX::COMBOBOX(class OWNER_WINDOW *,unsigned int,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *)
??0COMBOBOX@@QAE@PAVOWNER_WINDOW@@IIVXYPOINT@@VXYDIMENSION@@KPBG@Z
; public: __thiscall CONSOLE_ELLIPSIS::CONSOLE_ELLIPSIS(enum ELLIPSIS_STYLE,int)
??0CONSOLE_ELLIPSIS@@QAE@W4ELLIPSIS_STYLE@@H@Z
; public: __thiscall CONTROLVAL_CID_PAIR::CONTROLVAL_CID_PAIR(unsigned int,class CONTROL_VALUE *)
??0CONTROLVAL_CID_PAIR@@QAE@IPAVCONTROL_VALUE@@@Z
; public: __thiscall CONTROLVAL_CID_PAIR::CONTROLVAL_CID_PAIR(void)
??0CONTROLVAL_CID_PAIR@@QAE@XZ
; private: __thiscall CONTROL_ENTRY::CONTROL_ENTRY(class CONTROL_WINDOW *)
??0CONTROL_ENTRY@@AAE@PAVCONTROL_WINDOW@@@Z
; public: __thiscall CONTROL_EVENT::CONTROL_EVENT(unsigned int,unsigned int)
??0CONTROL_EVENT@@QAE@II@Z
; public: __thiscall CONTROL_EVENT::CONTROL_EVENT(unsigned int,unsigned int,long)
??0CONTROL_EVENT@@QAE@IIJ@Z
; public: __thiscall CONTROL_GROUP::CONTROL_GROUP(class CONTROL_GROUP *)
??0CONTROL_GROUP@@QAE@PAV0@@Z
; public: __thiscall CONTROL_TABLE::CONTROL_TABLE(void)
??0CONTROL_TABLE@@QAE@XZ
; public: __thiscall CONTROL_VALUE::CONTROL_VALUE(class CONTROL_GROUP *)
??0CONTROL_VALUE@@QAE@PAVCONTROL_GROUP@@@Z
; public: __thiscall CONTROL_WINDOW::CONTROL_WINDOW(class OWNER_WINDOW *,unsigned int)
??0CONTROL_WINDOW@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall CONTROL_WINDOW::CONTROL_WINDOW(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *)
??0CONTROL_WINDOW@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBG@Z
; public: __thiscall CUSTOM_CONTROL::CUSTOM_CONTROL(class CONTROL_WINDOW *)
??0CUSTOM_CONTROL@@QAE@PAVCONTROL_WINDOW@@@Z
; public: __thiscall DEC_SLT::DEC_SLT(class OWNER_WINDOW *,unsigned int,unsigned int)
??0DEC_SLT@@QAE@PAVOWNER_WINDOW@@II@Z
; public: __thiscall DEC_SLT::DEC_SLT(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *,unsigned int)
??0DEC_SLT@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBGI@Z
; public: __thiscall DEVICE_COMBO::DEVICE_COMBO(class OWNER_WINDOW *,unsigned int,enum LMO_DEVICE,enum LMO_DEV_USAGE)
??0DEVICE_COMBO@@QAE@PAVOWNER_WINDOW@@IW4LMO_DEVICE@@W4LMO_DEV_USAGE@@@Z
; public: __thiscall DEVICE_CONTEXT::DEVICE_CONTEXT(struct HDC__ *)
??0DEVICE_CONTEXT@@QAE@PAUHDC__@@@Z
; protected: __thiscall DIALOG_WINDOW::DIALOG_WINDOW(unsigned char const *,unsigned int,struct HWND__ *,int)
??0DIALOG_WINDOW@@IAE@PBEIPAUHWND__@@H@Z
; public: __thiscall DIALOG_WINDOW::DIALOG_WINDOW(class IDRESOURCE const &,class PWND2HWND const &,int)
??0DIALOG_WINDOW@@QAE@ABVIDRESOURCE@@ABVPWND2HWND@@H@Z
; public: __thiscall DISK_SPACE_SUBCLASS::DISK_SPACE_SUBCLASS(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,long,long,long,long,long,int)
??0DISK_SPACE_SUBCLASS@@QAE@PAVOWNER_WINDOW@@IIIIIJJJJJH@Z
; protected: __thiscall DISPATCHER::DISPATCHER(class WINDOW *)
??0DISPATCHER@@IAE@PAVWINDOW@@@Z
; public: __thiscall DISPLAY_CONTEXT::DISPLAY_CONTEXT(struct HWND__ *)
??0DISPLAY_CONTEXT@@QAE@PAUHWND__@@@Z
; public: __thiscall DISPLAY_CONTEXT::DISPLAY_CONTEXT(class WINDOW *)
??0DISPLAY_CONTEXT@@QAE@PAVWINDOW@@@Z
; public: __thiscall DISPLAY_CONTEXT::DISPLAY_CONTEXT(class WINDOW *,struct HDC__ *)
??0DISPLAY_CONTEXT@@QAE@PAVWINDOW@@PAUHDC__@@@Z
; public: __thiscall DISPLAY_MAP::DISPLAY_MAP(unsigned int)
??0DISPLAY_MAP@@QAE@I@Z
; public: __thiscall DISPLAY_TABLE::DISPLAY_TABLE(unsigned int,unsigned int const *)
??0DISPLAY_TABLE@@QAE@IPBI@Z
; public: __thiscall DLGLOAD::DLGLOAD(class IDRESOURCE const &,struct HWND__ *,int (__stdcall*)(struct HWND__ *,unsigned int,unsigned int,long),int)
??0DLGLOAD@@QAE@ABVIDRESOURCE@@PAUHWND__@@P6GH1IIJ@ZH@Z
; public: __thiscall DLGLOAD::DLGLOAD(unsigned char const *,unsigned int,struct HWND__ *,int (__stdcall*)(struct HWND__ *,unsigned int,unsigned int,long),int)
??0DLGLOAD@@QAE@PBEIPAUHWND__@@P6GH1IIJ@ZH@Z
; public: __thiscall DLIST_OF_SPIN_ITEM::DLIST_OF_SPIN_ITEM(int)
??0DLIST_OF_SPIN_ITEM@@QAE@H@Z
; public: __thiscall DMID_DTE::DMID_DTE(unsigned int)
??0DMID_DTE@@QAE@I@Z
; protected: __thiscall DM_DTE::DM_DTE(void)
??0DM_DTE@@IAE@XZ
; public: __thiscall DM_DTE::DM_DTE(class DISPLAY_MAP *)
??0DM_DTE@@QAE@PAVDISPLAY_MAP@@@Z
; public: __thiscall DOMAIN_COMBO::DOMAIN_COMBO(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int)
??0DOMAIN_COMBO@@QAE@PAVOWNER_WINDOW@@III@Z
; public: __thiscall DOMAIN_FILL_THREAD::DOMAIN_FILL_THREAD(class NT_USER_BROWSER_DIALOG *,class BROWSER_DOMAIN *,class ADMIN_AUTHORITY const *)
??0DOMAIN_FILL_THREAD@@QAE@PAVNT_USER_BROWSER_DIALOG@@PAVBROWSER_DOMAIN@@PBVADMIN_AUTHORITY@@@Z
; protected: __thiscall DTE::DTE(void)
??0DTE@@IAE@XZ
; public: __thiscall EDIT_CONTROL::EDIT_CONTROL(class OWNER_WINDOW *,unsigned int,unsigned int)
??0EDIT_CONTROL@@QAE@PAVOWNER_WINDOW@@II@Z
; public: __thiscall EDIT_CONTROL::EDIT_CONTROL(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *,unsigned int)
??0EDIT_CONTROL@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBGI@Z
; public: __thiscall ELAPSED_TIME_CONTROL::ELAPSED_TIME_CONTROL(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,class SLT &,long,long,long,class SLT &,class SLT &,long,long,long,long,int)
??0ELAPSED_TIME_CONTROL@@QAE@PAVOWNER_WINDOW@@IIIIIIAAVSLT@@JJJ11JJJJH@Z
; public: __thiscall EVENT::EVENT(unsigned int,unsigned int,long)
??0EVENT@@QAE@IIJ@Z
; public: __thiscall EXPANDABLE_DIALOG::EXPANDABLE_DIALOG(unsigned short const *,struct HWND__ *,unsigned int,unsigned int,int)
??0EXPANDABLE_DIALOG@@QAE@PBGPAUHWND__@@IIH@Z
; public: __thiscall FOCUSDLG_DATA_THREAD::FOCUSDLG_DATA_THREAD(struct HWND__ *,unsigned long,enum SELECTION_TYPE,unsigned short const *,unsigned long)
??0FOCUSDLG_DATA_THREAD@@QAE@PAUHWND__@@KW4SELECTION_TYPE@@PBGK@Z
; public: __thiscall FOCUS_CHECKBOX::FOCUS_CHECKBOX(class OWNER_WINDOW *,unsigned int)
??0FOCUS_CHECKBOX@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall FONT::FONT(struct tagLOGFONTW const &)
??0FONT@@QAE@ABUtagLOGFONTW@@@Z
; public: __thiscall FONT::FONT(unsigned short const *,unsigned char,int,enum FontAttributes)
??0FONT@@QAE@PBGEHW4FontAttributes@@@Z
; public: __thiscall FONT::FONT(enum FontType)
??0FONT@@QAE@W4FontType@@@Z
; protected: __thiscall FORWARDING_BASE::FORWARDING_BASE(class BASE *)
??0FORWARDING_BASE@@IAE@PAVBASE@@@Z
; protected: __thiscall GET_FNAME_BASE_DLG::GET_FNAME_BASE_DLG(class OWNER_WINDOW *,unsigned short const *,unsigned long)
??0GET_FNAME_BASE_DLG@@IAE@PAVOWNER_WINDOW@@PBGK@Z
; public: __thiscall GET_OPEN_FILENAME_DLG::GET_OPEN_FILENAME_DLG(class OWNER_WINDOW *,unsigned short const *,unsigned long)
??0GET_OPEN_FILENAME_DLG@@QAE@PAVOWNER_WINDOW@@PBGK@Z
; public: __thiscall GET_SAVE_FILENAME_DLG::GET_SAVE_FILENAME_DLG(class OWNER_WINDOW *,unsigned short const *,unsigned long)
??0GET_SAVE_FILENAME_DLG@@QAE@PAVOWNER_WINDOW@@PBGK@Z
; public: __thiscall GLOBAL_ATOM::GLOBAL_ATOM(unsigned short const *)
??0GLOBAL_ATOM@@QAE@PBG@Z
; public: __thiscall GRAPHICAL_BUTTON::GRAPHICAL_BUTTON(class OWNER_WINDOW *,unsigned int,unsigned short const *,unsigned short const *,unsigned short const *)
??0GRAPHICAL_BUTTON@@QAE@PAVOWNER_WINDOW@@IPBG11@Z
; public: __thiscall GRAPHICAL_BUTTON::GRAPHICAL_BUTTON(class OWNER_WINDOW *,unsigned int,unsigned short const *,unsigned short const *,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *)
??0GRAPHICAL_BUTTON@@QAE@PAVOWNER_WINDOW@@IPBG1VXYPOINT@@VXYDIMENSION@@K1@Z
; public: __thiscall GRAPHICAL_BUTTON_WITH_DISABLE::GRAPHICAL_BUTTON_WITH_DISABLE(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int,unsigned int)
??0GRAPHICAL_BUTTON_WITH_DISABLE@@QAE@PAVOWNER_WINDOW@@IIII@Z
; public: __thiscall GRAPHICAL_BUTTON_WITH_DISABLE::GRAPHICAL_BUTTON_WITH_DISABLE(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long)
??0GRAPHICAL_BUTTON_WITH_DISABLE@@QAE@PAVOWNER_WINDOW@@IIIIVXYPOINT@@VXYDIMENSION@@K@Z
; public: __thiscall HAS_MESSAGE_PUMP::HAS_MESSAGE_PUMP(void)
??0HAS_MESSAGE_PUMP@@QAE@XZ
; public: __thiscall HAW_FOR_HAWAII_INFO::HAW_FOR_HAWAII_INFO(void)
??0HAW_FOR_HAWAII_INFO@@QAE@XZ
; public: __thiscall HIDDEN_CONTROL::HIDDEN_CONTROL(class OWNER_WINDOW *,unsigned int)
??0HIDDEN_CONTROL@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall HIER_LBI::HIER_LBI(int)
??0HIER_LBI@@QAE@H@Z
; public: __thiscall HIER_LBI_ITERATOR::HIER_LBI_ITERATOR(class HIER_LBI *,int)
??0HIER_LBI_ITERATOR@@QAE@PAVHIER_LBI@@H@Z
; public: __thiscall HIER_LISTBOX::HIER_LISTBOX(class OWNER_WINDOW *,unsigned int,int,enum FontType,int)
??0HIER_LISTBOX@@QAE@PAVOWNER_WINDOW@@IHW4FontType@@H@Z
; public: __thiscall HIER_LISTBOX::HIER_LISTBOX(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType,int)
??0HIER_LISTBOX@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@H@Z
; public: __thiscall H_SPLITTER_BAR::H_SPLITTER_BAR(class OWNER_WINDOW *,unsigned int)
??0H_SPLITTER_BAR@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall H_SPLITTER_BAR::H_SPLITTER_BAR(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long)
??0H_SPLITTER_BAR@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@K@Z
; public: __thiscall ICANON_SLE::ICANON_SLE(class OWNER_WINDOW *,unsigned int,unsigned int,int)
??0ICANON_SLE@@QAE@PAVOWNER_WINDOW@@IIH@Z
; public: __thiscall ICANON_SLE::ICANON_SLE(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *,unsigned int,int)
??0ICANON_SLE@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBGIH@Z
; public: __thiscall ICON_CONTROL::ICON_CONTROL(class OWNER_WINDOW *,unsigned int)
??0ICON_CONTROL@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall ICON_CONTROL::ICON_CONTROL(class OWNER_WINDOW *,unsigned int,class IDRESOURCE const &)
??0ICON_CONTROL@@QAE@PAVOWNER_WINDOW@@IABVIDRESOURCE@@@Z
; public: __thiscall ICON_CONTROL::ICON_CONTROL(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,class IDRESOURCE const &,unsigned long,unsigned short const *)
??0ICON_CONTROL@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@ABVIDRESOURCE@@KPBG@Z
; public: __thiscall ICON_CONTROL::ICON_CONTROL(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *)
??0ICON_CONTROL@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBG@Z
; public: __thiscall IDRESOURCE::IDRESOURCE(unsigned int)
??0IDRESOURCE@@QAE@I@Z
; public: __thiscall IDRESOURCE::IDRESOURCE(unsigned short const *)
??0IDRESOURCE@@QAE@PBG@Z
; public: __thiscall ITER_CTRL::ITER_CTRL(class OWNER_WINDOW const *)
??0ITER_CTRL@@QAE@PBVOWNER_WINDOW@@@Z
; public: __thiscall ITER_DL_SPIN_ITEM::ITER_DL_SPIN_ITEM(class DLIST &)
??0ITER_DL_SPIN_ITEM@@QAE@AAVDLIST@@@Z
; public: __thiscall ITER_SL_ASSOCHCFILE::ITER_SL_ASSOCHCFILE(class SLIST &)
??0ITER_SL_ASSOCHCFILE@@QAE@AAVSLIST@@@Z
; public: __thiscall ITER_SL_CLIENTDATA::ITER_SL_CLIENTDATA(class SLIST &)
??0ITER_SL_CLIENTDATA@@QAE@AAVSLIST@@@Z
; public: __thiscall ITER_SL_STRING_BITSET_PAIR::ITER_SL_STRING_BITSET_PAIR(class SLIST &)
??0ITER_SL_STRING_BITSET_PAIR@@QAE@AAVSLIST@@@Z
; public: __thiscall ITER_SL_TIMER_BASE::ITER_SL_TIMER_BASE(class SLIST &)
??0ITER_SL_TIMER_BASE@@QAE@AAVSLIST@@@Z
; public: __thiscall ITER_SL_UI_EXT::ITER_SL_UI_EXT(class SLIST &)
??0ITER_SL_UI_EXT@@QAE@AAVSLIST@@@Z
; public: __thiscall ITER_SL_USER_BROWSER_LBI::ITER_SL_USER_BROWSER_LBI(class SLIST &)
??0ITER_SL_USER_BROWSER_LBI@@QAE@AAVSLIST@@@Z
; public: __thiscall LAZY_LISTBOX::LAZY_LISTBOX(class OWNER_WINDOW *,unsigned int,int,enum FontType)
??0LAZY_LISTBOX@@QAE@PAVOWNER_WINDOW@@IHW4FontType@@@Z
; public: __thiscall LAZY_LISTBOX::LAZY_LISTBOX(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType)
??0LAZY_LISTBOX@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@@Z
; public: __thiscall LBI::LBI(void)
??0LBI@@QAE@XZ
; public: __thiscall LBITREE::LBITREE(void)
??0LBITREE@@QAE@XZ
; public: __thiscall LBI_HEAP::LBI_HEAP(int,int)
??0LBI_HEAP@@QAE@HH@Z
; public: __thiscall LB_COLUMN_HEADER::LB_COLUMN_HEADER(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION)
??0LB_COLUMN_HEADER@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@@Z
; public: __thiscall LB_COL_WIDTHS::LB_COL_WIDTHS(struct HWND__ *,struct HINSTANCE__ *,class IDRESOURCE const &,unsigned int,unsigned int)
??0LB_COL_WIDTHS@@QAE@PAUHWND__@@PAUHINSTANCE__@@ABVIDRESOURCE@@II@Z
; public: __thiscall LISTBOX::LISTBOX(class OWNER_WINDOW *,unsigned int,int,enum FontType,int)
??0LISTBOX@@QAE@PAVOWNER_WINDOW@@IHW4FontType@@H@Z
; public: __thiscall LISTBOX::LISTBOX(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int,enum FontType,int)
??0LISTBOX@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KHW4FontType@@H@Z
; protected: __thiscall LIST_CONTROL::LIST_CONTROL(class OWNER_WINDOW *,unsigned int,int)
??0LIST_CONTROL@@IAE@PAVOWNER_WINDOW@@IH@Z
; protected: __thiscall LIST_CONTROL::LIST_CONTROL(class OWNER_WINDOW *,unsigned int,int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *)
??0LIST_CONTROL@@IAE@PAVOWNER_WINDOW@@IHVXYPOINT@@VXYDIMENSION@@KPBG@Z
; public: __thiscall LM_OLLB::LM_OLLB(class OWNER_WINDOW *,unsigned int,enum SELECTION_TYPE,unsigned long)
??0LM_OLLB@@QAE@PAVOWNER_WINDOW@@IW4SELECTION_TYPE@@K@Z
; public: __thiscall LM_OLLB::LM_OLLB(class OWNER_WINDOW *,unsigned int,enum SELECTION_TYPE,unsigned short const *,unsigned long,unsigned long)
??0LM_OLLB@@QAE@PAVOWNER_WINDOW@@IW4SELECTION_TYPE@@PBGKK@Z
; public: __thiscall LOCAL_ATOM::LOCAL_ATOM(unsigned short const *)
??0LOCAL_ATOM@@QAE@PBG@Z
; public: __thiscall LOGON_HOURS_CONTROL::LOGON_HOURS_CONTROL(class OWNER_WINDOW *,unsigned int)
??0LOGON_HOURS_CONTROL@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall LOGON_HOURS_CONTROL::LOGON_HOURS_CONTROL(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION)
??0LOGON_HOURS_CONTROL@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@@Z
; public: __thiscall MAGIC_GROUP::MAGIC_GROUP(class OWNER_WINDOW *,unsigned int,int,unsigned int,class CONTROL_GROUP *)
??0MAGIC_GROUP@@QAE@PAVOWNER_WINDOW@@IHIPAVCONTROL_GROUP@@@Z
; public: __thiscall MASK_MAP::MASK_MAP(void)
??0MASK_MAP@@QAE@XZ
; public: __thiscall MEMORY_DC::MEMORY_DC(class DEVICE_CONTEXT &)
??0MEMORY_DC@@QAE@AAVDEVICE_CONTEXT@@@Z
; protected: __thiscall MENUITEM::MENUITEM(struct HMENU__ *,unsigned int)
??0MENUITEM@@IAE@PAUHMENU__@@I@Z
; public: __thiscall MENUITEM::MENUITEM(class APP_WINDOW *,unsigned int)
??0MENUITEM@@QAE@PAVAPP_WINDOW@@I@Z
; protected: __thiscall MENU_BASE::MENU_BASE(struct HMENU__ *)
??0MENU_BASE@@IAE@PAUHMENU__@@@Z
; public: __thiscall METER::METER(class OWNER_WINDOW *,unsigned int,unsigned long)
??0METER@@QAE@PAVOWNER_WINDOW@@IK@Z
; public: __thiscall METER::METER(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned long)
??0METER@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KK@Z
; public: __thiscall MLE::MLE(class OWNER_WINDOW *,unsigned int,unsigned int)
??0MLE@@QAE@PAVOWNER_WINDOW@@II@Z
; public: __thiscall MLE::MLE(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *,unsigned int)
??0MLE@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBGI@Z
; public: __thiscall MLE_FONT::MLE_FONT(class OWNER_WINDOW *,unsigned int,enum FontType)
??0MLE_FONT@@QAE@PAVOWNER_WINDOW@@IW4FontType@@@Z
; public: __thiscall MLT::MLT(class OWNER_WINDOW *,unsigned int)
??0MLT@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall MLT::MLT(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *)
??0MLT@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBG@Z
; public: __thiscall MLT_FONT::MLT_FONT(class OWNER_WINDOW *,unsigned int,enum FontType)
??0MLT_FONT@@QAE@PAVOWNER_WINDOW@@IW4FontType@@@Z
; public: __thiscall MOUSE_EVENT::MOUSE_EVENT(unsigned int,unsigned int,long)
??0MOUSE_EVENT@@QAE@IIJ@Z
; public: __thiscall MSGPOPUP_DIALOG::MSGPOPUP_DIALOG(struct HWND__ *,class NLS_STR const &,long,enum MSG_SEVERITY,unsigned long,unsigned int,unsigned int,long,unsigned long)
??0MSGPOPUP_DIALOG@@QAE@PAUHWND__@@ABVNLS_STR@@JW4MSG_SEVERITY@@KIIJK@Z
; protected: __thiscall MSG_DIALOG_BASE::MSG_DIALOG_BASE(struct HWND__ *,unsigned short const *,unsigned int)
??0MSG_DIALOG_BASE@@IAE@PAUHWND__@@PBGI@Z
; public: __thiscall NT_FIND_ACCOUNT_DIALOG::NT_FIND_ACCOUNT_DIALOG(struct HWND__ *,class NT_USER_BROWSER_DIALOG *,class BROWSER_DOMAIN_CB *,unsigned short const *,unsigned long)
??0NT_FIND_ACCOUNT_DIALOG@@QAE@PAUHWND__@@PAVNT_USER_BROWSER_DIALOG@@PAVBROWSER_DOMAIN_CB@@PBGK@Z
; public: __thiscall NT_GLOBALGROUP_BROWSER_DIALOG::NT_GLOBALGROUP_BROWSER_DIALOG(struct HWND__ *,class NT_USER_BROWSER_DIALOG *,unsigned short const *,unsigned short const *,class OS_SID const *,class SAM_DOMAIN const *,class LSA_POLICY *,unsigned short const *)
??0NT_GLOBALGROUP_BROWSER_DIALOG@@QAE@PAUHWND__@@PAVNT_USER_BROWSER_DIALOG@@PBG2PBVOS_SID@@PBVSAM_DOMAIN@@PAVLSA_POLICY@@2@Z
; public: __thiscall NT_GROUP_BROWSER_DIALOG::NT_GROUP_BROWSER_DIALOG(unsigned short const *,struct HWND__ *,class NT_USER_BROWSER_DIALOG *,unsigned short const *,unsigned short const *)
??0NT_GROUP_BROWSER_DIALOG@@QAE@PBGPAUHWND__@@PAVNT_USER_BROWSER_DIALOG@@00@Z
; public: __thiscall NT_GROUP_BROWSER_LB::NT_GROUP_BROWSER_LB(class OWNER_WINDOW *,unsigned int)
??0NT_GROUP_BROWSER_LB@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall NT_LOCALGROUP_BROWSER_DIALOG::NT_LOCALGROUP_BROWSER_DIALOG(struct HWND__ *,class NT_USER_BROWSER_DIALOG *,unsigned short const *,unsigned short const *,class OS_SID const *,class SAM_DOMAIN const *,class SAM_DOMAIN const *,class LSA_POLICY *,unsigned short const *)
??0NT_LOCALGROUP_BROWSER_DIALOG@@QAE@PAUHWND__@@PAVNT_USER_BROWSER_DIALOG@@PBG2PBVOS_SID@@PBVSAM_DOMAIN@@4PAVLSA_POLICY@@2@Z
; public: __thiscall NT_USER_BROWSER_DIALOG::NT_USER_BROWSER_DIALOG(unsigned short const *,struct HWND__ *,unsigned short const *,unsigned long,unsigned long,unsigned short const *,unsigned long,unsigned long,unsigned long,class ADMIN_AUTHORITY const *)
??0NT_USER_BROWSER_DIALOG@@QAE@PBGPAUHWND__@@0KK0KKKPBVADMIN_AUTHORITY@@@Z
; public: __thiscall OLLB_ENTRY::OLLB_ENTRY(enum OUTLINE_LB_LEVEL,int,unsigned short const *,unsigned short const *,unsigned short const *)
??0OLLB_ENTRY@@QAE@W4OUTLINE_LB_LEVEL@@HPBG11@Z
; public: __thiscall OPEN_DIALOG_BASE::OPEN_DIALOG_BASE(struct HWND__ *,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned short const *,unsigned short const *,class OPEN_LBOX_BASE *)
??0OPEN_DIALOG_BASE@@QAE@PAUHWND__@@IIIIIPBG1PAVOPEN_LBOX_BASE@@@Z
; public: __thiscall OPEN_LBI_BASE::OPEN_LBI_BASE(unsigned short const *,unsigned short const *,unsigned long,unsigned long,unsigned long)
??0OPEN_LBI_BASE@@QAE@PBG0KKK@Z
; public: __thiscall OPEN_LBOX_BASE::OPEN_LBOX_BASE(class OWNER_WINDOW *,unsigned int,class NLS_STR const &,class NLS_STR const &)
??0OPEN_LBOX_BASE@@QAE@PAVOWNER_WINDOW@@IABVNLS_STR@@1@Z
; public: __thiscall ORDER_GROUP::ORDER_GROUP(class STRING_LISTBOX *,class BUTTON_CONTROL *,class BUTTON_CONTROL *,class CONTROL_GROUP *)
??0ORDER_GROUP@@QAE@PAVSTRING_LISTBOX@@PAVBUTTON_CONTROL@@1PAVCONTROL_GROUP@@@Z
; public: __thiscall OUTLINE_LISTBOX::OUTLINE_LISTBOX(class OWNER_WINDOW *,unsigned int,int)
??0OUTLINE_LISTBOX@@QAE@PAVOWNER_WINDOW@@IH@Z
; public: __thiscall OWNER_WINDOW::OWNER_WINDOW(unsigned short const *,unsigned long,class WINDOW const *)
??0OWNER_WINDOW@@QAE@PBGKPBVWINDOW@@@Z
; public: __thiscall OWNER_WINDOW::OWNER_WINDOW(void)
??0OWNER_WINDOW@@QAE@XZ
; public: __thiscall OWNINGWND::OWNINGWND(struct HWND__ *)
??0OWNINGWND@@QAE@PAUHWND__@@@Z
; public: __thiscall OWNINGWND::OWNINGWND(class OWNER_WINDOW const *)
??0OWNINGWND@@QAE@PBVOWNER_WINDOW@@@Z
; public: __thiscall PAINT_DISPLAY_CONTEXT::PAINT_DISPLAY_CONTEXT(class WINDOW *)
??0PAINT_DISPLAY_CONTEXT@@QAE@PAVWINDOW@@@Z
; public: __thiscall PASSWORD_CONTROL::PASSWORD_CONTROL(class OWNER_WINDOW *,unsigned int,unsigned int)
??0PASSWORD_CONTROL@@QAE@PAVOWNER_WINDOW@@II@Z
; public: __thiscall PASSWORD_CONTROL::PASSWORD_CONTROL(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *,unsigned int)
??0PASSWORD_CONTROL@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBGI@Z
; public: __thiscall POPUP::POPUP(struct HWND__ *,long,enum MSG_SEVERITY,unsigned int,unsigned int,int)
??0POPUP@@QAE@PAUHWND__@@JW4MSG_SEVERITY@@IIH@Z
; public: __thiscall POPUP::POPUP(struct HWND__ *,long,enum MSG_SEVERITY,unsigned long,unsigned int,class NLS_STR const * *,unsigned int)
??0POPUP@@QAE@PAUHWND__@@JW4MSG_SEVERITY@@KIPAPBVNLS_STR@@I@Z
; public: __thiscall POPUP_MENU::POPUP_MENU(class IDRESOURCE &)
??0POPUP_MENU@@QAE@AAVIDRESOURCE@@@Z
; public: __thiscall POPUP_MENU::POPUP_MENU(class PWND2HWND const &)
??0POPUP_MENU@@QAE@ABVPWND2HWND@@@Z
; public: __thiscall POPUP_MENU::POPUP_MENU(struct HMENU__ *)
??0POPUP_MENU@@QAE@PAUHMENU__@@@Z
; public: __thiscall POPUP_MENU::POPUP_MENU(void)
??0POPUP_MENU@@QAE@XZ
; public: __thiscall PROC_INSTANCE::PROC_INSTANCE(unsigned long)
??0PROC_INSTANCE@@QAE@K@Z
; public: __thiscall PROC_TIMER::PROC_TIMER(struct HWND__ *,unsigned long,unsigned long,int)
??0PROC_TIMER@@QAE@PAUHWND__@@KKH@Z
; public: __thiscall PROGRESS_CONTROL::PROGRESS_CONTROL(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int)
??0PROGRESS_CONTROL@@QAE@PAVOWNER_WINDOW@@III@Z
; public: __thiscall PROMPT_AND_CONNECT::PROMPT_AND_CONNECT(struct HWND__ *,unsigned short const *,unsigned long,unsigned int,unsigned short const *)
??0PROMPT_AND_CONNECT@@QAE@PAUHWND__@@PBGKI1@Z
; public: __thiscall PROMPT_FOR_ANY_DC_DLG::PROMPT_FOR_ANY_DC_DLG(class PWND2HWND &,unsigned long,class NLS_STR const *,class PWND2HWND *)
??0PROMPT_FOR_ANY_DC_DLG@@QAE@AAVPWND2HWND@@KPBVNLS_STR@@PAV2@@Z
; public: __thiscall PUSH_BUTTON::PUSH_BUTTON(class OWNER_WINDOW *,unsigned int)
??0PUSH_BUTTON@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall PUSH_BUTTON::PUSH_BUTTON(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long)
??0PUSH_BUTTON@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@K@Z
; public: __thiscall PWND2HWND::PWND2HWND(struct HWND__ *)
??0PWND2HWND@@QAE@PAUHWND__@@@Z
; public: __thiscall RADIO_BUTTON::RADIO_BUTTON(class OWNER_WINDOW *,unsigned int)
??0RADIO_BUTTON@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall RADIO_GROUP::RADIO_GROUP(class OWNER_WINDOW *,unsigned int,int,unsigned int,class CONTROL_GROUP *)
??0RADIO_GROUP@@QAE@PAVOWNER_WINDOW@@IHIPAVCONTROL_GROUP@@@Z
; public: __thiscall RESOURCE_PASSWORD_DIALOG::RESOURCE_PASSWORD_DIALOG(struct HWND__ *,unsigned short const *,unsigned int,unsigned long)
??0RESOURCE_PASSWORD_DIALOG@@QAE@PAUHWND__@@PBGIK@Z
; public: __thiscall RESOURCE_STR::RESOURCE_STR(long)
??0RESOURCE_STR@@QAE@J@Z
; public: __thiscall RITER_DL_SPIN_ITEM::RITER_DL_SPIN_ITEM(class DLIST &)
??0RITER_DL_SPIN_ITEM@@QAE@AAVDLIST@@@Z
; public: __thiscall SCREEN_DC::SCREEN_DC(void)
??0SCREEN_DC@@QAE@XZ
; public: __thiscall SCROLLBAR::SCROLLBAR(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long)
??0SCROLLBAR@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@K@Z
; public: __thiscall SCROLL_EVENT::SCROLL_EVENT(unsigned int,unsigned int,long)
??0SCROLL_EVENT@@QAE@IIJ@Z
; public: __thiscall SET_CONTROL::SET_CONTROL(class OWNER_WINDOW *,unsigned int,unsigned int,struct HICON__ *,struct HICON__ *,class LISTBOX *,class LISTBOX *,unsigned int)
??0SET_CONTROL@@QAE@PAVOWNER_WINDOW@@IIPAUHICON__@@1PAVLISTBOX@@2I@Z
; public: __thiscall SET_OF_AUDIT_CATEGORIES::SET_OF_AUDIT_CATEGORIES(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int,class MASK_MAP *,class BITFIELD *,class BITFIELD *,int)
??0SET_OF_AUDIT_CATEGORIES@@QAE@PAVOWNER_WINDOW@@IIIPAVMASK_MAP@@PAVBITFIELD@@2H@Z
; public: __thiscall SLE::SLE(class OWNER_WINDOW *,unsigned int,unsigned int)
??0SLE@@QAE@PAVOWNER_WINDOW@@II@Z
; public: __thiscall SLE::SLE(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *,unsigned int)
??0SLE@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBGI@Z
; public: __thiscall SLE_FONT::SLE_FONT(class OWNER_WINDOW *,unsigned int,enum FontType)
??0SLE_FONT@@QAE@PAVOWNER_WINDOW@@IW4FontType@@@Z
; public: __thiscall SLE_STRIP::SLE_STRIP(class OWNER_WINDOW *,unsigned int,unsigned int,int)
??0SLE_STRIP@@QAE@PAVOWNER_WINDOW@@IIH@Z
; public: __thiscall SLE_STRIP::SLE_STRIP(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *,unsigned int,int)
??0SLE_STRIP@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBGIH@Z
; public: __thiscall SLE_STRLB_GROUP::SLE_STRLB_GROUP(class OWNER_WINDOW *,class SLE *,class STRING_LISTBOX *,class PUSH_BUTTON *,class PUSH_BUTTON *)
??0SLE_STRLB_GROUP@@QAE@PAVOWNER_WINDOW@@PAVSLE@@PAVSTRING_LISTBOX@@PAVPUSH_BUTTON@@3@Z
; public: __thiscall SLIST_OF_ASSOCHCFILE::SLIST_OF_ASSOCHCFILE(int)
??0SLIST_OF_ASSOCHCFILE@@QAE@H@Z
; public: __thiscall SLIST_OF_CLIENTDATA::SLIST_OF_CLIENTDATA(int)
??0SLIST_OF_CLIENTDATA@@QAE@H@Z
; public: __thiscall SLIST_OF_OS_SID::SLIST_OF_OS_SID(int)
??0SLIST_OF_OS_SID@@QAE@H@Z
; public: __thiscall SLIST_OF_STRING_BITSET_PAIR::SLIST_OF_STRING_BITSET_PAIR(int)
??0SLIST_OF_STRING_BITSET_PAIR@@QAE@H@Z
; public: __thiscall SLIST_OF_TIMER_BASE::SLIST_OF_TIMER_BASE(int)
??0SLIST_OF_TIMER_BASE@@QAE@H@Z
; public: __thiscall SLIST_OF_UI_EXT::SLIST_OF_UI_EXT(int)
??0SLIST_OF_UI_EXT@@QAE@H@Z
; public: __thiscall SLIST_OF_ULC_API_BUFFER::SLIST_OF_ULC_API_BUFFER(int)
??0SLIST_OF_ULC_API_BUFFER@@QAE@H@Z
; public: __thiscall SLIST_OF_USER_BROWSER_LBI::SLIST_OF_USER_BROWSER_LBI(int)
??0SLIST_OF_USER_BROWSER_LBI@@QAE@H@Z
; public: __thiscall SLT::SLT(class OWNER_WINDOW *,unsigned int)
??0SLT@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall SLT::SLT(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *)
??0SLT@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBG@Z
; public: __thiscall SLT_ELLIPSIS::SLT_ELLIPSIS(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *,enum ELLIPSIS_STYLE)
??0SLT_ELLIPSIS@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBGW4ELLIPSIS_STYLE@@@Z
; public: __thiscall SLT_ELLIPSIS::SLT_ELLIPSIS(class OWNER_WINDOW *,unsigned int,enum ELLIPSIS_STYLE)
??0SLT_ELLIPSIS@@QAE@PAVOWNER_WINDOW@@IW4ELLIPSIS_STYLE@@@Z
; public: __thiscall SLT_FONT::SLT_FONT(class OWNER_WINDOW *,unsigned int,enum FontType)
??0SLT_FONT@@QAE@PAVOWNER_WINDOW@@IW4FontType@@@Z
; public: __thiscall SOLID_BRUSH::SOLID_BRUSH(int)
??0SOLID_BRUSH@@QAE@H@Z
; public: __thiscall SPIN_GROUP::SPIN_GROUP(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int,int)
??0SPIN_GROUP@@QAE@PAVOWNER_WINDOW@@IIIH@Z
; public: __thiscall SPIN_GROUP::SPIN_GROUP(class OWNER_WINDOW *,unsigned int,unsigned int,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,int)
??0SPIN_GROUP@@QAE@PAVOWNER_WINDOW@@IIIVXYPOINT@@VXYDIMENSION@@KH@Z
; public: __thiscall SPIN_ITEM::SPIN_ITEM(class CONTROL_WINDOW *)
??0SPIN_ITEM@@QAE@PAVCONTROL_WINDOW@@@Z
; public: __thiscall SPIN_SLE_NUM::SPIN_SLE_NUM(class OWNER_WINDOW *,unsigned int,unsigned long,unsigned long,unsigned long,int,unsigned int)
??0SPIN_SLE_NUM@@QAE@PAVOWNER_WINDOW@@IKKKHI@Z
; public: __thiscall SPIN_SLE_NUM::SPIN_SLE_NUM(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned long,unsigned long,unsigned long,int,unsigned int)
??0SPIN_SLE_NUM@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KKKKHI@Z
; public: __thiscall SPIN_SLE_NUM_VALID::SPIN_SLE_NUM_VALID(class OWNER_WINDOW *,unsigned int,unsigned long,unsigned long,unsigned long,int)
??0SPIN_SLE_NUM_VALID@@QAE@PAVOWNER_WINDOW@@IKKKH@Z
; public: __thiscall SPIN_SLE_NUM_VALID::SPIN_SLE_NUM_VALID(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned long,unsigned long,unsigned long,int)
??0SPIN_SLE_NUM_VALID@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KKKKH@Z
; public: __thiscall SPIN_SLE_STR::SPIN_SLE_STR(class OWNER_WINDOW *,unsigned int,long,long,int,unsigned int)
??0SPIN_SLE_STR@@QAE@PAVOWNER_WINDOW@@IJJHI@Z
; public: __thiscall SPIN_SLE_STR::SPIN_SLE_STR(class OWNER_WINDOW *,unsigned int,long,long,class XYPOINT,class XYDIMENSION,unsigned long,int,unsigned int)
??0SPIN_SLE_STR@@QAE@PAVOWNER_WINDOW@@IJJVXYPOINT@@VXYDIMENSION@@KHI@Z
; public: __thiscall SPIN_SLE_STR::SPIN_SLE_STR(class OWNER_WINDOW *,unsigned int,unsigned short const * * const,long,int,unsigned int)
??0SPIN_SLE_STR@@QAE@PAVOWNER_WINDOW@@IQAPBGJHI@Z
; public: __thiscall SPIN_SLE_STR::SPIN_SLE_STR(class OWNER_WINDOW *,unsigned int,unsigned short const * * const,long,class XYPOINT,class XYDIMENSION,unsigned long,int,unsigned int)
??0SPIN_SLE_STR@@QAE@PAVOWNER_WINDOW@@IQAPBGJVXYPOINT@@VXYDIMENSION@@KHI@Z
; public: __thiscall SPIN_SLE_VALID_SECOND::SPIN_SLE_VALID_SECOND(class OWNER_WINDOW *,unsigned int,long,long,long,long,int)
??0SPIN_SLE_VALID_SECOND@@QAE@PAVOWNER_WINDOW@@IJJJJH@Z
; public: __thiscall SPIN_SLT_SEPARATOR::SPIN_SLT_SEPARATOR(class OWNER_WINDOW *,unsigned int)
??0SPIN_SLT_SEPARATOR@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall SPIN_SLT_SEPARATOR::SPIN_SLT_SEPARATOR(class OWNER_WINDOW *,unsigned int,unsigned short const *,class XYPOINT,class XYDIMENSION,unsigned long)
??0SPIN_SLT_SEPARATOR@@QAE@PAVOWNER_WINDOW@@IPBGVXYPOINT@@VXYDIMENSION@@K@Z
; public: __thiscall STANDALONE_SET_FOCUS_DLG::STANDALONE_SET_FOCUS_DLG(struct HWND__ *,class NLS_STR *,unsigned long,enum SELECTION_TYPE,unsigned long,unsigned short const *,unsigned short const *,unsigned long)
??0STANDALONE_SET_FOCUS_DLG@@QAE@PAUHWND__@@PAVNLS_STR@@KW4SELECTION_TYPE@@KPBG3K@Z
; protected: __thiscall STATE2_BUTTON_CONTROL::STATE2_BUTTON_CONTROL(class OWNER_WINDOW *,unsigned int)
??0STATE2_BUTTON_CONTROL@@IAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall STATELB::STATELB(int * const,class OWNER_WINDOW *,unsigned int,int,int,enum FontType)
??0STATELB@@QAE@QAHPAVOWNER_WINDOW@@IHHW4FontType@@@Z
; public: __thiscall STATELBGRP::STATELBGRP(class STATELB *)
??0STATELBGRP@@QAE@PAVSTATELB@@@Z
; public: __thiscall STATELBGRP::STATELBGRP(int * const,class OWNER_WINDOW *,unsigned int,int,int,enum FontType)
??0STATELBGRP@@QAE@QAHPAVOWNER_WINDOW@@IHHW4FontType@@@Z
; protected: __thiscall STATE_BUTTON_CONTROL::STATE_BUTTON_CONTROL(class OWNER_WINDOW *,unsigned int)
??0STATE_BUTTON_CONTROL@@IAE@PAVOWNER_WINDOW@@I@Z
; protected: __thiscall STATE_BUTTON_CONTROL::STATE_BUTTON_CONTROL(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long)
??0STATE_BUTTON_CONTROL@@IAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@K@Z
; public: __thiscall STATIC_SPIN_ITEM::STATIC_SPIN_ITEM(class CONTROL_WINDOW *)
??0STATIC_SPIN_ITEM@@QAE@PAVCONTROL_WINDOW@@@Z
; public: __thiscall STATIC_TEXT_CONTROL::STATIC_TEXT_CONTROL(class OWNER_WINDOW *,unsigned int)
??0STATIC_TEXT_CONTROL@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall STATIC_TEXT_CONTROL::STATIC_TEXT_CONTROL(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *)
??0STATIC_TEXT_CONTROL@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBG@Z
; public: __thiscall STLBITEM::STLBITEM(class STATELBGRP *)
??0STLBITEM@@QAE@PAVSTATELBGRP@@@Z
; public: __thiscall STRING_BITSET_PAIR::STRING_BITSET_PAIR(class NLS_STR const &,class BITFIELD const &,int)
??0STRING_BITSET_PAIR@@QAE@ABVNLS_STR@@ABVBITFIELD@@H@Z
; public: __thiscall STRING_LISTBOX::STRING_LISTBOX(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *,enum FontType)
??0STRING_LISTBOX@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBGW4FontType@@@Z
; public: __thiscall STRING_LISTBOX::STRING_LISTBOX(class OWNER_WINDOW *,unsigned int,enum FontType)
??0STRING_LISTBOX@@QAE@PAVOWNER_WINDOW@@IW4FontType@@@Z
; protected: __thiscall STRING_LIST_CONTROL::STRING_LIST_CONTROL(class OWNER_WINDOW *,unsigned int,int)
??0STRING_LIST_CONTROL@@IAE@PAVOWNER_WINDOW@@IH@Z
; protected: __thiscall STRING_LIST_CONTROL::STRING_LIST_CONTROL(class OWNER_WINDOW *,unsigned int,int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *)
??0STRING_LIST_CONTROL@@IAE@PAVOWNER_WINDOW@@IHVXYPOINT@@VXYDIMENSION@@KPBG@Z
; public: __thiscall STR_DTE::STR_DTE(unsigned short const *)
??0STR_DTE@@QAE@PBG@Z
; public: __thiscall STR_DTE_ELLIPSIS::STR_DTE_ELLIPSIS(unsigned short const *,class LISTBOX *,enum ELLIPSIS_STYLE)
??0STR_DTE_ELLIPSIS@@QAE@PBGPAVLISTBOX@@W4ELLIPSIS_STYLE@@@Z
; public: __thiscall SUBJECT_BITMAP_BLOCK::SUBJECT_BITMAP_BLOCK(void)
??0SUBJECT_BITMAP_BLOCK@@QAE@XZ
; public: __thiscall SYSMENUITEM::SYSMENUITEM(class OWNER_WINDOW *,unsigned int)
??0SYSMENUITEM@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall SYSTEM_MENU::SYSTEM_MENU(class PWND2HWND const &)
??0SYSTEM_MENU@@QAE@ABVPWND2HWND@@@Z
; public: __thiscall TEXT_CONTROL::TEXT_CONTROL(class OWNER_WINDOW *,unsigned int)
??0TEXT_CONTROL@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall TEXT_CONTROL::TEXT_CONTROL(class OWNER_WINDOW *,unsigned int,class XYPOINT,class XYDIMENSION,unsigned long,unsigned short const *)
??0TEXT_CONTROL@@QAE@PAVOWNER_WINDOW@@IVXYPOINT@@VXYDIMENSION@@KPBG@Z
; public: __thiscall TIMER::TIMER(class TIMER_CALLOUT *,unsigned long,int)
??0TIMER@@QAE@PAVTIMER_CALLOUT@@KH@Z
; public: __thiscall TIMER_BASE::TIMER_BASE(unsigned long,int)
??0TIMER_BASE@@QAE@KH@Z
; public: __thiscall TIMER_EVENT::TIMER_EVENT(unsigned int,unsigned int,long)
??0TIMER_EVENT@@QAE@IIJ@Z
; public: __thiscall TIMER_WINDOW::TIMER_WINDOW(class BLT_MASTER_TIMER *)
??0TIMER_WINDOW@@QAE@PAVBLT_MASTER_TIMER@@@Z
; public: __thiscall UI_DOMAIN::UI_DOMAIN(class PWND2HWND &,unsigned long,unsigned short const *,int)
??0UI_DOMAIN@@QAE@AAVPWND2HWND@@KPBGH@Z
; protected: __thiscall UI_EXT::UI_EXT(unsigned short const *,unsigned long)
??0UI_EXT@@IAE@PBGK@Z
; public: __thiscall UI_EXT_MGR::UI_EXT_MGR(class UI_EXT_MGR_IF *,unsigned long,unsigned long)
??0UI_EXT_MGR@@QAE@PAVUI_EXT_MGR_IF@@KK@Z
; protected: __thiscall UI_EXT_MGR_IF::UI_EXT_MGR_IF(void)
??0UI_EXT_MGR_IF@@IAE@XZ
; protected: __thiscall UI_MENU_EXT::UI_MENU_EXT(unsigned short const *,unsigned long)
??0UI_MENU_EXT@@IAE@PBGK@Z
; public: __thiscall UI_MENU_EXT_MGR::UI_MENU_EXT_MGR(class UI_EXT_MGR_IF *,unsigned long,unsigned long)
??0UI_MENU_EXT_MGR@@QAE@PAVUI_EXT_MGR_IF@@KK@Z
; public: __thiscall ULC_API_BUFFER::ULC_API_BUFFER(struct _DOMAIN_DISPLAY_USER *,unsigned long)
??0ULC_API_BUFFER@@QAE@PAU_DOMAIN_DISPLAY_USER@@K@Z
; public: __thiscall USER_BROWSER_LB::USER_BROWSER_LB(class OWNER_WINDOW *,unsigned int)
??0USER_BROWSER_LB@@QAE@PAVOWNER_WINDOW@@I@Z
; public: __thiscall USER_BROWSER_LBI::USER_BROWSER_LBI(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,void * const,enum UI_SystemSid,enum _SID_NAME_USE,unsigned long)
??0USER_BROWSER_LBI@@QAE@PBG0000QAXW4UI_SystemSid@@W4_SID_NAME_USE@@K@Z
; public: __thiscall USER_BROWSER_LBI_CACHE::USER_BROWSER_LBI_CACHE(void)
??0USER_BROWSER_LBI_CACHE@@QAE@XZ
; public: __thiscall USER_LBI_CACHE::USER_LBI_CACHE(int)
??0USER_LBI_CACHE@@QAE@H@Z
; public: __thiscall USRLB_NT_GROUP_ENUM::USRLB_NT_GROUP_ENUM(class SAM_DOMAIN const *)
??0USRLB_NT_GROUP_ENUM@@QAE@PBVSAM_DOMAIN@@@Z
; public: __thiscall WIN32_EVENT::WIN32_EVENT(unsigned short const *,int,int)
??0WIN32_EVENT@@QAE@PBGHH@Z
; public: __thiscall WIN32_HANDLE::WIN32_HANDLE(void *)
??0WIN32_HANDLE@@QAE@PAX@Z
; public: __thiscall WIN32_MUTEX::WIN32_MUTEX(unsigned short const *,int)
??0WIN32_MUTEX@@QAE@PBGH@Z
; public: __thiscall WIN32_SEMAPHORE::WIN32_SEMAPHORE(unsigned short const *,long,long)
??0WIN32_SEMAPHORE@@QAE@PBGJJ@Z
; protected: __thiscall WIN32_SYNC_BASE::WIN32_SYNC_BASE(void *)
??0WIN32_SYNC_BASE@@IAE@PAX@Z
; public: __thiscall WIN32_THREAD::WIN32_THREAD(int,unsigned int,unsigned short const *)
??0WIN32_THREAD@@QAE@HIPBG@Z
; public: __thiscall WINDOW::WINDOW(class WINDOW const &)
??0WINDOW@@QAE@ABV0@@Z
; public: __thiscall WINDOW::WINDOW(struct HWND__ *)
??0WINDOW@@QAE@PAUHWND__@@@Z
; public: __thiscall WINDOW::WINDOW(unsigned short const *,unsigned long,class WINDOW const *,unsigned int)
??0WINDOW@@QAE@PBGKPBV0@I@Z
; public: __thiscall WINDOW::WINDOW(void)
??0WINDOW@@QAE@XZ
; public: __thiscall WINDOW_TIMER::WINDOW_TIMER(struct HWND__ *,unsigned long,int,int)
??0WINDOW_TIMER@@QAE@PAUHWND__@@KHH@Z
; public: __thiscall WIN_ELLIPSIS::WIN_ELLIPSIS(class WINDOW *,struct HDC__ *,struct tagRECT const *,enum ELLIPSIS_STYLE)
??0WIN_ELLIPSIS@@QAE@PAVWINDOW@@PAUHDC__@@PBUtagRECT@@W4ELLIPSIS_STYLE@@@Z
; public: __thiscall WIN_ELLIPSIS::WIN_ELLIPSIS(class WINDOW *,enum ELLIPSIS_STYLE)
??0WIN_ELLIPSIS@@QAE@PAVWINDOW@@W4ELLIPSIS_STYLE@@@Z
; public: __thiscall XYDIMENSION::XYDIMENSION(struct tagSIZE const &)
??0XYDIMENSION@@QAE@ABUtagSIZE@@@Z
; public: __thiscall XYDIMENSION::XYDIMENSION(unsigned int,unsigned int)
??0XYDIMENSION@@QAE@II@Z
; public: __thiscall XYPOINT::XYPOINT(struct tagPOINT const &)
??0XYPOINT@@QAE@ABUtagPOINT@@@Z
; public: __thiscall XYPOINT::XYPOINT(int,int)
??0XYPOINT@@QAE@HH@Z
; public: __thiscall XYPOINT::XYPOINT(long)
??0XYPOINT@@QAE@J@Z
; public: __thiscall XYRECT::XYRECT(struct tagRECT const &)
??0XYRECT@@QAE@ABUtagRECT@@@Z
; public: __thiscall XYRECT::XYRECT(class XYRECT const &)
??0XYRECT@@QAE@ABV0@@Z
; public: __thiscall XYRECT::XYRECT(int,int,int,int)
??0XYRECT@@QAE@HHHH@Z
; public: __thiscall XYRECT::XYRECT(struct HWND__ *,int)
??0XYRECT@@QAE@PAUHWND__@@H@Z
; public: __thiscall XYRECT::XYRECT(class WINDOW const *,int)
??0XYRECT@@QAE@PBVWINDOW@@H@Z
; public: __thiscall XYRECT::XYRECT(class XYPOINT,class XYPOINT)
??0XYRECT@@QAE@VXYPOINT@@0@Z
; public: __thiscall XYRECT::XYRECT(class XYPOINT,class XYDIMENSION)
??0XYRECT@@QAE@VXYPOINT@@VXYDIMENSION@@@Z
; public: __thiscall XYRECT::XYRECT(void)
??0XYRECT@@QAE@XZ
; public: __thiscall ACCELTABLE::~ACCELTABLE(void)
??1ACCELTABLE@@QAE@XZ
; public: __thiscall ACCOUNT_NAMES_MLE::~ACCOUNT_NAMES_MLE(void)
??1ACCOUNT_NAMES_MLE@@QAE@XZ
; public: __thiscall ALIAS_STR::~ALIAS_STR(void)
??1ALIAS_STR@@QAE@XZ
; public: __thiscall ALLOC_STR::~ALLOC_STR(void)
??1ALLOC_STR@@QAE@XZ
; protected: __thiscall APPLICATION::~APPLICATION(void)
??1APPLICATION@@IAE@XZ
; protected: __thiscall APP_WINDOW::~APP_WINDOW(void)
??1APP_WINDOW@@IAE@XZ
; public: __thiscall ARRAY_CONTROLVAL_CID_PAIR::~ARRAY_CONTROLVAL_CID_PAIR(void)
??1ARRAY_CONTROLVAL_CID_PAIR@@QAE@XZ
; public: __thiscall ARRAY_LIST_CONTROLVAL_CID_PAIR::~ARRAY_LIST_CONTROLVAL_CID_PAIR(void)
??1ARRAY_LIST_CONTROLVAL_CID_PAIR@@QAE@XZ
; public: __thiscall ARROW_BUTTON::~ARROW_BUTTON(void)
??1ARROW_BUTTON@@QAE@XZ
; public: __thiscall ASSOCHCFILE::~ASSOCHCFILE(void)
??1ASSOCHCFILE@@QAE@XZ
; public: __thiscall ASSOCHWNDDISP::~ASSOCHWNDDISP(void)
??1ASSOCHWNDDISP@@QAE@XZ
; public: __thiscall ASSOCHWNDPDLG::~ASSOCHWNDPDLG(void)
??1ASSOCHWNDPDLG@@QAE@XZ
; public: __thiscall ASSOCHWNDPWND::~ASSOCHWNDPWND(void)
??1ASSOCHWNDPWND@@QAE@XZ
; public: __thiscall ASSOCHWNDTHIS::~ASSOCHWNDTHIS(void)
??1ASSOCHWNDTHIS@@QAE@XZ
; protected: __thiscall ATOM_BASE::~ATOM_BASE(void)
??1ATOM_BASE@@IAE@XZ
; public: __thiscall AUDIT_CHECKBOXES::~AUDIT_CHECKBOXES(void)
??1AUDIT_CHECKBOXES@@QAE@XZ
; public: __thiscall AUTO_CURSOR::~AUTO_CURSOR(void)
??1AUTO_CURSOR@@QAE@XZ
; public: __thiscall BASE_ELLIPSIS::~BASE_ELLIPSIS(void)
??1BASE_ELLIPSIS@@QAE@XZ
; public: __thiscall BASE_PASSWORD_DIALOG::~BASE_PASSWORD_DIALOG(void)
??1BASE_PASSWORD_DIALOG@@QAE@XZ
; public: __thiscall BASE_SET_FOCUS_DLG::~BASE_SET_FOCUS_DLG(void)
??1BASE_SET_FOCUS_DLG@@QAE@XZ
; public: __thiscall BIT_MAP::~BIT_MAP(void)
??1BIT_MAP@@QAE@XZ
; public: __thiscall BLT_BACKGROUND_EDIT::~BLT_BACKGROUND_EDIT(void)
??1BLT_BACKGROUND_EDIT@@QAE@XZ
; public: __thiscall BLT_COMBOBOX::~BLT_COMBOBOX(void)
??1BLT_COMBOBOX@@QAE@XZ
; public: __thiscall BLT_DATE_SPIN_GROUP::~BLT_DATE_SPIN_GROUP(void)
??1BLT_DATE_SPIN_GROUP@@QAE@XZ
; public: __thiscall BLT_LISTBOX::~BLT_LISTBOX(void)
??1BLT_LISTBOX@@QAE@XZ
; public: __thiscall BLT_MASTER_TIMER::~BLT_MASTER_TIMER(void)
??1BLT_MASTER_TIMER@@QAE@XZ
; public: __thiscall BLT_SCRATCH::~BLT_SCRATCH(void)
??1BLT_SCRATCH@@QAE@XZ
; public: __thiscall BLT_TIME_SPIN_GROUP::~BLT_TIME_SPIN_GROUP(void)
??1BLT_TIME_SPIN_GROUP@@QAE@XZ
; public: __thiscall BROWSER_DOMAIN::~BROWSER_DOMAIN(void)
??1BROWSER_DOMAIN@@QAE@XZ
; public: __thiscall BROWSER_DOMAIN_CB::~BROWSER_DOMAIN_CB(void)
??1BROWSER_DOMAIN_CB@@QAE@XZ
; public: __thiscall BROWSER_DOMAIN_LB::~BROWSER_DOMAIN_LB(void)
??1BROWSER_DOMAIN_LB@@QAE@XZ
; public: virtual __thiscall BROWSER_DOMAIN_LBI::~BROWSER_DOMAIN_LBI(void)
??1BROWSER_DOMAIN_LBI@@UAE@XZ
; public: virtual __thiscall BROWSER_DOMAIN_LBI_PB::~BROWSER_DOMAIN_LBI_PB(void)
??1BROWSER_DOMAIN_LBI_PB@@UAE@XZ
; public: __thiscall BROWSER_SUBJECT::~BROWSER_SUBJECT(void)
??1BROWSER_SUBJECT@@QAE@XZ
; public: __thiscall BROWSER_SUBJECT_ITER::~BROWSER_SUBJECT_ITER(void)
??1BROWSER_SUBJECT_ITER@@QAE@XZ
; public: __thiscall BUTTON_CONTROL::~BUTTON_CONTROL(void)
??1BUTTON_CONTROL@@QAE@XZ
; public: __thiscall CANCEL_TASK_DIALOG::~CANCEL_TASK_DIALOG(void)
??1CANCEL_TASK_DIALOG@@QAE@XZ
; public: __thiscall CHANGEABLE_SPIN_ITEM::~CHANGEABLE_SPIN_ITEM(void)
??1CHANGEABLE_SPIN_ITEM@@QAE@XZ
; public: __thiscall CHECKBOX::~CHECKBOX(void)
??1CHECKBOX@@QAE@XZ
; public: __thiscall CLIENT_WINDOW::~CLIENT_WINDOW(void)
??1CLIENT_WINDOW@@QAE@XZ
; public: __thiscall COMBOBOX::~COMBOBOX(void)
??1COMBOBOX@@QAE@XZ
; public: __thiscall CONTROL_TABLE::~CONTROL_TABLE(void)
??1CONTROL_TABLE@@QAE@XZ
; public: __thiscall CONTROL_WINDOW::~CONTROL_WINDOW(void)
??1CONTROL_WINDOW@@QAE@XZ
; public: __thiscall CUSTOM_CONTROL::~CUSTOM_CONTROL(void)
??1CUSTOM_CONTROL@@QAE@XZ
; public: __thiscall DEC_SLT::~DEC_SLT(void)
??1DEC_SLT@@QAE@XZ
; public: __thiscall DEC_STR::~DEC_STR(void)
??1DEC_STR@@QAE@XZ
; public: __thiscall DIALOG_WINDOW::~DIALOG_WINDOW(void)
??1DIALOG_WINDOW@@QAE@XZ
; protected: __thiscall DISPATCHER::~DISPATCHER(void)
??1DISPATCHER@@IAE@XZ
; public: __thiscall DISPLAY_CONTEXT::~DISPLAY_CONTEXT(void)
??1DISPLAY_CONTEXT@@QAE@XZ
; public: __thiscall DISPLAY_MAP::~DISPLAY_MAP(void)
??1DISPLAY_MAP@@QAE@XZ
; public: __thiscall DLGLOAD::~DLGLOAD(void)
??1DLGLOAD@@QAE@XZ
; public: __thiscall DLIST_OF_SPIN_ITEM::~DLIST_OF_SPIN_ITEM(void)
??1DLIST_OF_SPIN_ITEM@@QAE@XZ
; public: __thiscall DMID_DTE::~DMID_DTE(void)
??1DMID_DTE@@QAE@XZ
; public: virtual __thiscall DOMAIN_FILL_THREAD::~DOMAIN_FILL_THREAD(void)
??1DOMAIN_FILL_THREAD@@UAE@XZ
; public: __thiscall EDIT_CONTROL::~EDIT_CONTROL(void)
??1EDIT_CONTROL@@QAE@XZ
; protected: __thiscall ENUM_OBJ_BASE::~ENUM_OBJ_BASE(void)
??1ENUM_OBJ_BASE@@IAE@XZ
; public: __thiscall EXPANDABLE_DIALOG::~EXPANDABLE_DIALOG(void)
??1EXPANDABLE_DIALOG@@QAE@XZ
; public: __thiscall FILE3_ENUM::~FILE3_ENUM(void)
??1FILE3_ENUM@@QAE@XZ
; public: __thiscall FILE3_ENUM_ITER::~FILE3_ENUM_ITER(void)
??1FILE3_ENUM_ITER@@QAE@XZ
; public: __thiscall FILE3_ENUM_OBJ::~FILE3_ENUM_OBJ(void)
??1FILE3_ENUM_OBJ@@QAE@XZ
; public: virtual __thiscall FOCUSDLG_DATA_THREAD::~FOCUSDLG_DATA_THREAD(void)
??1FOCUSDLG_DATA_THREAD@@UAE@XZ
; public: __thiscall FOCUS_CHECKBOX::~FOCUS_CHECKBOX(void)
??1FOCUS_CHECKBOX@@QAE@XZ
; public: __thiscall FONT::~FONT(void)
??1FONT@@QAE@XZ
; protected: __thiscall GET_FNAME_BASE_DLG::~GET_FNAME_BASE_DLG(void)
??1GET_FNAME_BASE_DLG@@IAE@XZ
; public: __thiscall GLOBAL_ATOM::~GLOBAL_ATOM(void)
??1GLOBAL_ATOM@@QAE@XZ
; public: __thiscall GRAPHICAL_BUTTON::~GRAPHICAL_BUTTON(void)
??1GRAPHICAL_BUTTON@@QAE@XZ
; public: __thiscall GRAPHICAL_BUTTON_WITH_DISABLE::~GRAPHICAL_BUTTON_WITH_DISABLE(void)
??1GRAPHICAL_BUTTON_WITH_DISABLE@@QAE@XZ
; public: __thiscall HAW_FOR_HAWAII_INFO::~HAW_FOR_HAWAII_INFO(void)
??1HAW_FOR_HAWAII_INFO@@QAE@XZ
; public: __thiscall HEX_STR::~HEX_STR(void)
??1HEX_STR@@QAE@XZ
; public: virtual __thiscall HIER_LBI::~HIER_LBI(void)
??1HIER_LBI@@UAE@XZ
; public: __thiscall HIER_LBI_ITERATOR::~HIER_LBI_ITERATOR(void)
??1HIER_LBI_ITERATOR@@QAE@XZ
; public: __thiscall HIER_LISTBOX::~HIER_LISTBOX(void)
??1HIER_LISTBOX@@QAE@XZ
; public: __thiscall H_SPLITTER_BAR::~H_SPLITTER_BAR(void)
??1H_SPLITTER_BAR@@QAE@XZ
; public: __thiscall ICANON_SLE::~ICANON_SLE(void)
??1ICANON_SLE@@QAE@XZ
; public: __thiscall ICON_CONTROL::~ICON_CONTROL(void)
??1ICON_CONTROL@@QAE@XZ
; public: __thiscall ITER_DL_SPIN_ITEM::~ITER_DL_SPIN_ITEM(void)
??1ITER_DL_SPIN_ITEM@@QAE@XZ
; public: __thiscall ITER_SL_ASSOCHCFILE::~ITER_SL_ASSOCHCFILE(void)
??1ITER_SL_ASSOCHCFILE@@QAE@XZ
; public: __thiscall ITER_SL_CLIENTDATA::~ITER_SL_CLIENTDATA(void)
??1ITER_SL_CLIENTDATA@@QAE@XZ
; public: __thiscall ITER_SL_STRING_BITSET_PAIR::~ITER_SL_STRING_BITSET_PAIR(void)
??1ITER_SL_STRING_BITSET_PAIR@@QAE@XZ
; public: __thiscall ITER_SL_TIMER_BASE::~ITER_SL_TIMER_BASE(void)
??1ITER_SL_TIMER_BASE@@QAE@XZ
; public: __thiscall ITER_SL_UI_EXT::~ITER_SL_UI_EXT(void)
??1ITER_SL_UI_EXT@@QAE@XZ
; public: __thiscall ITER_SL_USER_BROWSER_LBI::~ITER_SL_USER_BROWSER_LBI(void)
??1ITER_SL_USER_BROWSER_LBI@@QAE@XZ
; public: __thiscall LAZY_LISTBOX::~LAZY_LISTBOX(void)
??1LAZY_LISTBOX@@QAE@XZ
; public: virtual __thiscall LBI::~LBI(void)
??1LBI@@UAE@XZ
; public: __thiscall LBITREE::~LBITREE(void)
??1LBITREE@@QAE@XZ
; public: __thiscall LBI_HEAP::~LBI_HEAP(void)
??1LBI_HEAP@@QAE@XZ
; public: __thiscall LB_COL_WIDTHS::~LB_COL_WIDTHS(void)
??1LB_COL_WIDTHS@@QAE@XZ
; public: __thiscall LISTBOX::~LISTBOX(void)
??1LISTBOX@@QAE@XZ
; protected: __thiscall LIST_CONTROL::~LIST_CONTROL(void)
??1LIST_CONTROL@@IAE@XZ
; public: __thiscall LM_FILE_2::~LM_FILE_2(void)
??1LM_FILE_2@@QAE@XZ
; public: __thiscall LM_MESSAGE::~LM_MESSAGE(void)
??1LM_MESSAGE@@QAE@XZ
; public: __thiscall LM_OLLB::~LM_OLLB(void)
??1LM_OLLB@@QAE@XZ
; public: __thiscall LOCAL_ATOM::~LOCAL_ATOM(void)
??1LOCAL_ATOM@@QAE@XZ
; public: __thiscall LOC_LM_OBJ::~LOC_LM_OBJ(void)
??1LOC_LM_OBJ@@QAE@XZ
; public: __thiscall LOGON_HOURS_CONTROL::~LOGON_HOURS_CONTROL(void)
??1LOGON_HOURS_CONTROL@@QAE@XZ
; public: __thiscall MAGIC_GROUP::~MAGIC_GROUP(void)
??1MAGIC_GROUP@@QAE@XZ
; public: __thiscall MASK_MAP::~MASK_MAP(void)
??1MASK_MAP@@QAE@XZ
; public: __thiscall MEMORY_DC::~MEMORY_DC(void)
??1MEMORY_DC@@QAE@XZ
; public: __thiscall MENU_BASE::~MENU_BASE(void)
??1MENU_BASE@@QAE@XZ
; public: __thiscall MLE::~MLE(void)
??1MLE@@QAE@XZ
; public: __thiscall MLE_FONT::~MLE_FONT(void)
??1MLE_FONT@@QAE@XZ
; public: __thiscall MLT::~MLT(void)
??1MLT@@QAE@XZ
; public: __thiscall MSGPOPUP_DIALOG::~MSGPOPUP_DIALOG(void)
??1MSGPOPUP_DIALOG@@QAE@XZ
; protected: __thiscall MSG_DIALOG_BASE::~MSG_DIALOG_BASE(void)
??1MSG_DIALOG_BASE@@IAE@XZ
; public: __thiscall NT_FIND_ACCOUNT_DIALOG::~NT_FIND_ACCOUNT_DIALOG(void)
??1NT_FIND_ACCOUNT_DIALOG@@QAE@XZ
; public: virtual __thiscall NT_GLOBALGROUP_BROWSER_DIALOG::~NT_GLOBALGROUP_BROWSER_DIALOG(void)
??1NT_GLOBALGROUP_BROWSER_DIALOG@@UAE@XZ
; public: virtual __thiscall NT_GROUP_BROWSER_DIALOG::~NT_GROUP_BROWSER_DIALOG(void)
??1NT_GROUP_BROWSER_DIALOG@@UAE@XZ
; public: __thiscall NT_GROUP_BROWSER_LB::~NT_GROUP_BROWSER_LB(void)
??1NT_GROUP_BROWSER_LB@@QAE@XZ
; public: __thiscall NT_GROUP_ENUM_ITER::~NT_GROUP_ENUM_ITER(void)
??1NT_GROUP_ENUM_ITER@@QAE@XZ
; public: __thiscall NT_GROUP_ENUM_OBJ::~NT_GROUP_ENUM_OBJ(void)
??1NT_GROUP_ENUM_OBJ@@QAE@XZ
; public: virtual __thiscall NT_LOCALGROUP_BROWSER_DIALOG::~NT_LOCALGROUP_BROWSER_DIALOG(void)
??1NT_LOCALGROUP_BROWSER_DIALOG@@UAE@XZ
; public: __thiscall NT_USER_BROWSER_DIALOG::~NT_USER_BROWSER_DIALOG(void)
??1NT_USER_BROWSER_DIALOG@@QAE@XZ
; public: virtual __thiscall OLLB_ENTRY::~OLLB_ENTRY(void)
??1OLLB_ENTRY@@UAE@XZ
; public: __thiscall OPEN_DIALOG_BASE::~OPEN_DIALOG_BASE(void)
??1OPEN_DIALOG_BASE@@QAE@XZ
; public: virtual __thiscall OPEN_LBI_BASE::~OPEN_LBI_BASE(void)
??1OPEN_LBI_BASE@@UAE@XZ
; public: __thiscall OPEN_LBOX_BASE::~OPEN_LBOX_BASE(void)
??1OPEN_LBOX_BASE@@QAE@XZ
; public: __thiscall OUTLINE_LISTBOX::~OUTLINE_LISTBOX(void)
??1OUTLINE_LISTBOX@@QAE@XZ
; public: __thiscall OWNER_WINDOW::~OWNER_WINDOW(void)
??1OWNER_WINDOW@@QAE@XZ
; public: __thiscall PAINT_DISPLAY_CONTEXT::~PAINT_DISPLAY_CONTEXT(void)
??1PAINT_DISPLAY_CONTEXT@@QAE@XZ
; public: __thiscall PASSWORD_CONTROL::~PASSWORD_CONTROL(void)
??1PASSWORD_CONTROL@@QAE@XZ
; public: __thiscall POPUP::~POPUP(void)
??1POPUP@@QAE@XZ
; public: __thiscall POPUP_MENU::~POPUP_MENU(void)
??1POPUP_MENU@@QAE@XZ
; public: __thiscall PROC_INSTANCE::~PROC_INSTANCE(void)
??1PROC_INSTANCE@@QAE@XZ
; public: __thiscall PROGRESS_CONTROL::~PROGRESS_CONTROL(void)
??1PROGRESS_CONTROL@@QAE@XZ
; public: __thiscall PROMPT_AND_CONNECT::~PROMPT_AND_CONNECT(void)
??1PROMPT_AND_CONNECT@@QAE@XZ
; public: __thiscall PROMPT_FOR_ANY_DC_DLG::~PROMPT_FOR_ANY_DC_DLG(void)
??1PROMPT_FOR_ANY_DC_DLG@@QAE@XZ
; public: __thiscall PUSH_BUTTON::~PUSH_BUTTON(void)
??1PUSH_BUTTON@@QAE@XZ
; public: __thiscall RADIO_BUTTON::~RADIO_BUTTON(void)
??1RADIO_BUTTON@@QAE@XZ
; public: __thiscall RADIO_GROUP::~RADIO_GROUP(void)
??1RADIO_GROUP@@QAE@XZ
; public: __thiscall RESOURCE_PASSWORD_DIALOG::~RESOURCE_PASSWORD_DIALOG(void)
??1RESOURCE_PASSWORD_DIALOG@@QAE@XZ
; public: __thiscall RESOURCE_STR::~RESOURCE_STR(void)
??1RESOURCE_STR@@QAE@XZ
; public: __thiscall RITER_DL_SPIN_ITEM::~RITER_DL_SPIN_ITEM(void)
??1RITER_DL_SPIN_ITEM@@QAE@XZ
; public: __thiscall SCREEN_DC::~SCREEN_DC(void)
??1SCREEN_DC@@QAE@XZ
; public: __thiscall SERVER1_ENUM::~SERVER1_ENUM(void)
??1SERVER1_ENUM@@QAE@XZ
; public: __thiscall SERVER1_ENUM_ITER::~SERVER1_ENUM_ITER(void)
??1SERVER1_ENUM_ITER@@QAE@XZ
; public: __thiscall SERVER1_ENUM_OBJ::~SERVER1_ENUM_OBJ(void)
??1SERVER1_ENUM_OBJ@@QAE@XZ
; public: __thiscall SERVER_ENUM::~SERVER_ENUM(void)
??1SERVER_ENUM@@QAE@XZ
; public: __thiscall SET_CONTROL::~SET_CONTROL(void)
??1SET_CONTROL@@QAE@XZ
; public: __thiscall SET_OF_AUDIT_CATEGORIES::~SET_OF_AUDIT_CATEGORIES(void)
??1SET_OF_AUDIT_CATEGORIES@@QAE@XZ
; public: __thiscall SLE::~SLE(void)
??1SLE@@QAE@XZ
; public: __thiscall SLE_FONT::~SLE_FONT(void)
??1SLE_FONT@@QAE@XZ
; public: __thiscall SLE_STRLB_GROUP::~SLE_STRLB_GROUP(void)
??1SLE_STRLB_GROUP@@QAE@XZ
; public: __thiscall SLIST_OF_ASSOCHCFILE::~SLIST_OF_ASSOCHCFILE(void)
??1SLIST_OF_ASSOCHCFILE@@QAE@XZ
; public: __thiscall SLIST_OF_CLIENTDATA::~SLIST_OF_CLIENTDATA(void)
??1SLIST_OF_CLIENTDATA@@QAE@XZ
; public: __thiscall SLIST_OF_OS_SID::~SLIST_OF_OS_SID(void)
??1SLIST_OF_OS_SID@@QAE@XZ
; public: __thiscall SLIST_OF_STRING_BITSET_PAIR::~SLIST_OF_STRING_BITSET_PAIR(void)
??1SLIST_OF_STRING_BITSET_PAIR@@QAE@XZ
; public: __thiscall SLIST_OF_TIMER_BASE::~SLIST_OF_TIMER_BASE(void)
??1SLIST_OF_TIMER_BASE@@QAE@XZ
; public: __thiscall SLIST_OF_UI_EXT::~SLIST_OF_UI_EXT(void)
??1SLIST_OF_UI_EXT@@QAE@XZ
; public: __thiscall SLIST_OF_ULC_API_BUFFER::~SLIST_OF_ULC_API_BUFFER(void)
??1SLIST_OF_ULC_API_BUFFER@@QAE@XZ
; public: __thiscall SLIST_OF_USER_BROWSER_LBI::~SLIST_OF_USER_BROWSER_LBI(void)
??1SLIST_OF_USER_BROWSER_LBI@@QAE@XZ
; public: __thiscall SLT::~SLT(void)
??1SLT@@QAE@XZ
; public: __thiscall SLT_ELLIPSIS::~SLT_ELLIPSIS(void)
??1SLT_ELLIPSIS@@QAE@XZ
; public: __thiscall SOLID_BRUSH::~SOLID_BRUSH(void)
??1SOLID_BRUSH@@QAE@XZ
; public: __thiscall SPIN_GROUP::~SPIN_GROUP(void)
??1SPIN_GROUP@@QAE@XZ
; public: __thiscall SPIN_ITEM::~SPIN_ITEM(void)
??1SPIN_ITEM@@QAE@XZ
; public: __thiscall SPIN_SLE_NUM::~SPIN_SLE_NUM(void)
??1SPIN_SLE_NUM@@QAE@XZ
; public: __thiscall SPIN_SLE_NUM_VALID::~SPIN_SLE_NUM_VALID(void)
??1SPIN_SLE_NUM_VALID@@QAE@XZ
; public: __thiscall SPIN_SLE_STR::~SPIN_SLE_STR(void)
??1SPIN_SLE_STR@@QAE@XZ
; public: __thiscall SPIN_SLE_VALID_SECOND::~SPIN_SLE_VALID_SECOND(void)
??1SPIN_SLE_VALID_SECOND@@QAE@XZ
; public: __thiscall SPIN_SLT_SEPARATOR::~SPIN_SLT_SEPARATOR(void)
??1SPIN_SLT_SEPARATOR@@QAE@XZ
; public: __thiscall STATE2_BUTTON_CONTROL::~STATE2_BUTTON_CONTROL(void)
??1STATE2_BUTTON_CONTROL@@QAE@XZ
; public: __thiscall STATELB::~STATELB(void)
??1STATELB@@QAE@XZ
; public: __thiscall STATELBGRP::~STATELBGRP(void)
??1STATELBGRP@@QAE@XZ
; public: __thiscall STATE_BUTTON_CONTROL::~STATE_BUTTON_CONTROL(void)
??1STATE_BUTTON_CONTROL@@QAE@XZ
; public: __thiscall STATIC_SPIN_ITEM::~STATIC_SPIN_ITEM(void)
??1STATIC_SPIN_ITEM@@QAE@XZ
; public: __thiscall STATIC_TEXT_CONTROL::~STATIC_TEXT_CONTROL(void)
??1STATIC_TEXT_CONTROL@@QAE@XZ
; public: virtual __thiscall STLBITEM::~STLBITEM(void)
??1STLBITEM@@UAE@XZ
; public: __thiscall STRING_BITSET_PAIR::~STRING_BITSET_PAIR(void)
??1STRING_BITSET_PAIR@@QAE@XZ
; public: __thiscall STRING_LIST_CONTROL::~STRING_LIST_CONTROL(void)
??1STRING_LIST_CONTROL@@QAE@XZ
; public: __thiscall SUBJECT_BITMAP_BLOCK::~SUBJECT_BITMAP_BLOCK(void)
??1SUBJECT_BITMAP_BLOCK@@QAE@XZ
; public: __thiscall SYSTEM_MENU::~SYSTEM_MENU(void)
??1SYSTEM_MENU@@QAE@XZ
; public: __thiscall TEXT_CONTROL::~TEXT_CONTROL(void)
??1TEXT_CONTROL@@QAE@XZ
; public: __thiscall TIMER_BASE::~TIMER_BASE(void)
??1TIMER_BASE@@QAE@XZ
; public: __thiscall TIMER_WINDOW::~TIMER_WINDOW(void)
??1TIMER_WINDOW@@QAE@XZ
; public: __thiscall UI_DOMAIN::~UI_DOMAIN(void)
??1UI_DOMAIN@@QAE@XZ
; public: virtual __thiscall UI_EXT::~UI_EXT(void)
??1UI_EXT@@UAE@XZ
; public: __thiscall UI_EXT_MGR::~UI_EXT_MGR(void)
??1UI_EXT_MGR@@QAE@XZ
; public: __thiscall UI_EXT_MGR_IF::~UI_EXT_MGR_IF(void)
??1UI_EXT_MGR_IF@@QAE@XZ
; public: virtual __thiscall UI_MENU_EXT::~UI_MENU_EXT(void)
??1UI_MENU_EXT@@UAE@XZ
; public: virtual __thiscall UI_MENU_EXT_MGR::~UI_MENU_EXT_MGR(void)
??1UI_MENU_EXT_MGR@@UAE@XZ
; public: __thiscall ULC_API_BUFFER::~ULC_API_BUFFER(void)
??1ULC_API_BUFFER@@QAE@XZ
; public: __thiscall USER_BROWSER_LB::~USER_BROWSER_LB(void)
??1USER_BROWSER_LB@@QAE@XZ
; public: virtual __thiscall USER_BROWSER_LBI::~USER_BROWSER_LBI(void)
??1USER_BROWSER_LBI@@UAE@XZ
; public: virtual __thiscall USER_BROWSER_LBI_CACHE::~USER_BROWSER_LBI_CACHE(void)
??1USER_BROWSER_LBI_CACHE@@UAE@XZ
; public: virtual __thiscall USER_LBI_CACHE::~USER_LBI_CACHE(void)
??1USER_LBI_CACHE@@UAE@XZ
; public: __thiscall USRLB_NT_GROUP_ENUM::~USRLB_NT_GROUP_ENUM(void)
??1USRLB_NT_GROUP_ENUM@@QAE@XZ
; public: __thiscall WIN32_EVENT::~WIN32_EVENT(void)
??1WIN32_EVENT@@QAE@XZ
; public: __thiscall WIN32_HANDLE::~WIN32_HANDLE(void)
??1WIN32_HANDLE@@QAE@XZ
; public: __thiscall WIN32_MUTEX::~WIN32_MUTEX(void)
??1WIN32_MUTEX@@QAE@XZ
; public: __thiscall WIN32_SEMAPHORE::~WIN32_SEMAPHORE(void)
??1WIN32_SEMAPHORE@@QAE@XZ
; public: __thiscall WIN32_SYNC_BASE::~WIN32_SYNC_BASE(void)
??1WIN32_SYNC_BASE@@QAE@XZ
; public: virtual __thiscall WIN32_THREAD::~WIN32_THREAD(void)
??1WIN32_THREAD@@UAE@XZ
; public: __thiscall WINDOW::~WINDOW(void)
??1WINDOW@@QAE@XZ
; public: __thiscall WIN_ELLIPSIS::~WIN_ELLIPSIS(void)
??1WIN_ELLIPSIS@@QAE@XZ
; public: class ARRAY_CONTROLVAL_CID_PAIR & __thiscall ARRAY_CONTROLVAL_CID_PAIR::operator=(class ARRAY_CONTROLVAL_CID_PAIR &)
??4ARRAY_CONTROLVAL_CID_PAIR@@QAEAAV0@AAV0@@Z
; public: virtual unsigned short const * __thiscall GLOBAL_ATOM::operator=(unsigned short const *)
??4GLOBAL_ATOM@@UAEPBGPBG@Z
; public: virtual unsigned short const * __thiscall LOCAL_ATOM::operator=(unsigned short const *)
??4LOCAL_ATOM@@UAEPBGPBG@Z
; public: class XYRECT & __thiscall XYRECT::operator=(class XYRECT const &)
??4XYRECT@@QAEAAV0@ABV0@@Z
; public: int __thiscall ASSOCHWNDDISP::operator!(void)const 
??7ASSOCHWNDDISP@@QBEHXZ
; public: int __thiscall ASSOCHWNDPWND::operator!(void)const 
??7ASSOCHWNDPWND@@QBEHXZ
; public: int __thiscall BASE::operator!(void)const 
??7BASE@@QBEHXZ
; public: int __thiscall CONTROL_WINDOW::operator!(void)const 
??7CONTROL_WINDOW@@QBEHXZ
; public: int __thiscall XYRECT::operator==(class XYRECT const &)const 
??8XYRECT@@QBEHABV0@@Z
; public: class CONTROLVAL_CID_PAIR & __thiscall ARRAY_CONTROLVAL_CID_PAIR::operator[](unsigned int)const 
??AARRAY_CONTROLVAL_CID_PAIR@@QBEAAVCONTROLVAL_CID_PAIR@@I@Z
; public: class DTE * & __thiscall DISPLAY_TABLE::operator[](unsigned int)
??ADISPLAY_TABLE@@QAEAAPAVDTE@@I@Z
; public: class RADIO_BUTTON * __thiscall RADIO_GROUP::operator[](unsigned int)
??ARADIO_GROUP@@QAEPAVRADIO_BUTTON@@I@Z
; public: __thiscall NLS_STR::operator unsigned short const *(void)const 
??BNLS_STR@@QBEPBGXZ
; public: __thiscall OS_SID::operator void *(void)const 
??BOS_SID@@QBEPAXXZ
; public: __thiscall XYRECT::operator struct tagRECT const *(void)const 
??BXYRECT@@QBEPBUtagRECT@@XZ
; public: class FILE3_ENUM_OBJ const * __thiscall FILE3_ENUM_ITER::operator()(long *,int)
??RFILE3_ENUM_ITER@@QAEPBVFILE3_ENUM_OBJ@@PAJH@Z
; public: class HIER_LBI * __thiscall HIER_LBI_ITERATOR::operator()(void)
??RHIER_LBI_ITERATOR@@QAEPAVHIER_LBI@@XZ
; public: class CONTROL_WINDOW * __thiscall ITER_CTRL::operator()(void)
??RITER_CTRL@@QAEPAVCONTROL_WINDOW@@XZ
; public: unsigned short const * __thiscall ITER_DEVICE::operator()(void)
??RITER_DEVICE@@QAEPBGXZ
; public: class NLS_STR * __thiscall ITER_SL_NLS_STR::operator()(void)
??RITER_SL_NLS_STR@@QAEPAVNLS_STR@@XZ
; public: class NT_GROUP_ENUM_OBJ const * __thiscall NT_GROUP_ENUM_ITER::operator()(long *,int)
??RNT_GROUP_ENUM_ITER@@QAEPBVNT_GROUP_ENUM_OBJ@@PAJH@Z
; public: virtual void __thiscall CHANGEABLE_SPIN_ITEM::operator+=(unsigned long)
??YCHANGEABLE_SPIN_ITEM@@UAEXK@Z
; public: class XYRECT & __thiscall XYRECT::operator+=(class XYRECT const &)
??YXYRECT@@QAEAAV0@ABV0@@Z
; public: virtual void __thiscall CHANGEABLE_SPIN_ITEM::operator-=(unsigned long)
??ZCHANGEABLE_SPIN_ITEM@@UAEXK@Z
; void __stdcall `vector constructor iterator'(void *,unsigned int,int,void * (__thiscall*)(void *))
??_H@YGXPAXIHP6EPAX0@Z@Z
; void __stdcall `vector destructor iterator'(void *,unsigned int,int,void (__thiscall*)(void *))
??_I@YGXPAXIHP6EX0@Z@Z
; void __stdcall `vector vbase constructor iterator'(void *,unsigned int,int,void * (__thiscall*)(void *))
??_J@YGXPAXIHP6EPAX0@Z@Z
; private: void __thiscall HIER_LBI::Abandon(void)
?Abandon@HIER_LBI@@AAEXXZ
; private: void __thiscall HIER_LBI::AbandonAllChildren(void)
?AbandonAllChildren@HIER_LBI@@AAEXXZ
; protected: virtual int __thiscall MSG_DIALOG_BASE::ActionOnError(long)
?ActionOnError@MSG_DIALOG_BASE@@MAEHJ@Z
; private: void __thiscall MAGIC_GROUP::ActivateAssocControls(unsigned int,unsigned int,class CONTROL_VALUE *)
?ActivateAssocControls@MAGIC_GROUP@@AAEXIIPAVCONTROL_VALUE@@@Z
; public: virtual void __thiscall UI_EXT_MGR::ActivateExtension(struct HWND__ *,unsigned long)
?ActivateExtension@UI_EXT_MGR@@UAEXPAUHWND__@@K@Z
; public: int __thiscall ARRAY_LIST_CONTROLVAL_CID_PAIR::Add(class CONTROLVAL_CID_PAIR const &)
?Add@ARRAY_LIST_CONTROLVAL_CID_PAIR@@QAEHABVCONTROLVAL_CID_PAIR@@@Z
; public: static void __stdcall HWND_DLGPTR_CACHE::Add(struct HWND__ *,class DIALOG_WINDOW *)
?Add@HWND_DLGPTR_CACHE@@SGXPAUHWND__@@PAVDIALOG_WINDOW@@@Z
; public: long __thiscall MASK_MAP::Add(class BITFIELD const &,class NLS_STR const &,int)
?Add@MASK_MAP@@QAEJABVBITFIELD@@ABVNLS_STR@@H@Z
; public: long __thiscall MASK_MAP::Add(struct US_IDS_PAIRS * const,unsigned short)
?Add@MASK_MAP@@QAEJQAUUS_IDS_PAIRS@@G@Z
; public: long __thiscall SLIST_OF_ASSOCHCFILE::Add(class ASSOCHCFILE const *)
?Add@SLIST_OF_ASSOCHCFILE@@QAEJPBVASSOCHCFILE@@@Z
; public: long __thiscall SLIST_OF_CLIENTDATA::Add(struct CLIENTDATA const *)
?Add@SLIST_OF_CLIENTDATA@@QAEJPBUCLIENTDATA@@@Z
; public: long __thiscall SLIST_OF_NLS_STR::Add(class NLS_STR const *)
?Add@SLIST_OF_NLS_STR@@QAEJPBVNLS_STR@@@Z
; public: long __thiscall SLIST_OF_OS_SID::Add(class OS_SID const *)
?Add@SLIST_OF_OS_SID@@QAEJPBVOS_SID@@@Z
; public: long __thiscall SLIST_OF_TIMER_BASE::Add(class TIMER_BASE const *)
?Add@SLIST_OF_TIMER_BASE@@QAEJPBVTIMER_BASE@@@Z
; public: long __thiscall SLIST_OF_USER_BROWSER_LBI::Add(class USER_BROWSER_LBI const *)
?Add@SLIST_OF_USER_BROWSER_LBI@@QAEJPBVUSER_BROWSER_LBI@@@Z
; protected: long __thiscall USER_BROWSER_LBI_CACHE::AddAliases(class ADMIN_AUTHORITY *,unsigned short const *,int *)
?AddAliases@USER_BROWSER_LBI_CACHE@@IAEJPAVADMIN_AUTHORITY@@PBGPAH@Z
; protected: long __thiscall USER_BROWSER_LBI_CACHE::AddAliases(class SAM_DOMAIN *,unsigned short const *,int *)
?AddAliases@USER_BROWSER_LBI_CACHE@@IAEJPAVSAM_DOMAIN@@PBGPAH@Z
; public: long __thiscall MAGIC_GROUP::AddAssociation(unsigned int,class CONTROL_VALUE *)
?AddAssociation@MAGIC_GROUP@@QAEJIPAVCONTROL_VALUE@@@Z
; public: long __thiscall SPIN_GROUP::AddAssociation(class SPIN_ITEM *)
?AddAssociation@SPIN_GROUP@@QAEJPAVSPIN_ITEM@@@Z
; protected: virtual long __thiscall HIER_LISTBOX::AddChildren(class HIER_LBI *)
?AddChildren@HIER_LISTBOX@@MAEJPAVHIER_LBI@@@Z
; public: static long __stdcall BLTIMP::AddClient(struct HINSTANCE__ *,unsigned int,unsigned int,unsigned int,unsigned int)
?AddClient@BLTIMP@@SGJPAUHINSTANCE__@@IIII@Z
; public: int __thiscall CONTROL_TABLE::AddControl(class CONTROL_WINDOW *)
?AddControl@CONTROL_TABLE@@QAEHPAVCONTROL_WINDOW@@@Z
; private: int __thiscall OWNER_WINDOW::AddControl(class CONTROL_WINDOW *)
?AddControl@OWNER_WINDOW@@AAEHPAVCONTROL_WINDOW@@@Z
; public: int __thiscall OUTLINE_LISTBOX::AddDomain(unsigned short const *,unsigned short const *,int)
?AddDomain@OUTLINE_LISTBOX@@QAEHPBG0H@Z
; protected: long __thiscall USER_BROWSER_LBI_CACHE::AddGroups(class ADMIN_AUTHORITY *,unsigned short const *,int *)
?AddGroups@USER_BROWSER_LBI_CACHE@@IAEJPAVADMIN_AUTHORITY@@PBGPAH@Z
; public: static long __stdcall BLTIMP::AddHelpAssoc(struct HINSTANCE__ *,long,unsigned long,unsigned long)
?AddHelpAssoc@BLTIMP@@SGJPAUHINSTANCE__@@JKK@Z
; public: int __thiscall ARRAY_LIST_CONTROLVAL_CID_PAIR::AddIdemp(class CONTROLVAL_CID_PAIR const &)
?AddIdemp@ARRAY_LIST_CONTROLVAL_CID_PAIR@@QAEHABVCONTROLVAL_CID_PAIR@@@Z
; public: int __thiscall BLT_LISTBOX::AddItem(class LBI *)
?AddItem@BLT_LISTBOX@@QAEHPAVLBI@@@Z
; public: long __thiscall BROWSER_DOMAIN_CB::AddItem(class BROWSER_DOMAIN *)
?AddItem@BROWSER_DOMAIN_CB@@QAEJPAVBROWSER_DOMAIN@@@Z
; public: int __thiscall HIER_LISTBOX::AddItem(class HIER_LBI *,class HIER_LBI *,int)
?AddItem@HIER_LISTBOX@@QAEHPAVHIER_LBI@@0H@Z
; public: long __thiscall LBI_HEAP::AddItem(class LBI *)
?AddItem@LBI_HEAP@@QAEJPAVLBI@@@Z
; protected: int __thiscall OUTLINE_LISTBOX::AddItem(enum OUTLINE_LB_LEVEL,int,unsigned short const *,unsigned short const *,unsigned short const *)
?AddItem@OUTLINE_LISTBOX@@IAEHW4OUTLINE_LB_LEVEL@@HPBG11@Z
; public: int __thiscall STRING_LIST_CONTROL::AddItem(unsigned short const *)
?AddItem@STRING_LIST_CONTROL@@QAEHPBG@Z
; public: int __thiscall USER_BROWSER_LB::AddItem(class LBI *)
?AddItem@USER_BROWSER_LB@@QAEHPAVLBI@@@Z
; public: virtual int __thiscall USER_BROWSER_LBI_CACHE::AddItem(class LBI *)
?AddItem@USER_BROWSER_LBI_CACHE@@UAEHPAVLBI@@@Z
; public: virtual int __thiscall USER_LBI_CACHE::AddItem(class LBI *)
?AddItem@USER_LBI_CACHE@@UAEHPAVLBI@@@Z
; protected: int __thiscall LIST_CONTROL::AddItemData(void *)
?AddItemData@LIST_CONTROL@@IAEHPAX@Z
; public: int __thiscall BLT_LISTBOX::AddItemIdemp(class LBI *)
?AddItemIdemp@BLT_LISTBOX@@QAEHPAVLBI@@@Z
; public: int __thiscall STRING_LIST_CONTROL::AddItemIdemp(class NLS_STR const &)
?AddItemIdemp@STRING_LIST_CONTROL@@QAEHABVNLS_STR@@@Z
; public: int __thiscall STRING_LIST_CONTROL::AddItemIdemp(unsigned short const *)
?AddItemIdemp@STRING_LIST_CONTROL@@QAEHPBG@Z
; public: int __thiscall LBITREE::AddNode(class HIER_LBI *,class HIER_LBI *,int)
?AddNode@LBITREE@@QAEHPAVHIER_LBI@@0H@Z
; public: long __thiscall NT_USER_BROWSER_DIALOG::AddSelectedUserBrowserLBIs(class USER_BROWSER_LB *,int,int)
?AddSelectedUserBrowserLBIs@NT_USER_BROWSER_DIALOG@@QAEJPAVUSER_BROWSER_LB@@HH@Z
; public: int __thiscall OUTLINE_LISTBOX::AddServer(unsigned short const *,unsigned short const *,unsigned short const *)
?AddServer@OUTLINE_LISTBOX@@QAEHPBG00@Z
; public: void __thiscall HIER_LISTBOX::AddSortedItems(class HIER_LBI * *,int,class HIER_LBI *,int)
?AddSortedItems@HIER_LISTBOX@@QAEXPAPAVHIER_LBI@@HPAV2@H@Z
; public: long __thiscall USER_BROWSER_LBI_CACHE::AddUsers(class ADMIN_AUTHORITY *,unsigned short const *,int,int *)
?AddUsers@USER_BROWSER_LBI_CACHE@@QAEJPAVADMIN_AUTHORITY@@PBGHPAH@Z
; protected: long __thiscall USER_BROWSER_LBI_CACHE::AddWellKnownSids(class ADMIN_AUTHORITY *,unsigned long,int *)
?AddWellKnownSids@USER_BROWSER_LBI_CACHE@@IAEJPAVADMIN_AUTHORITY@@KPAH@Z
; public: void __thiscall LBI_HEAP::Adjust(void)
?Adjust@LBI_HEAP@@QAEXXZ
; public: class XYRECT & __thiscall XYRECT::AdjustBottom(int)
?AdjustBottom@XYRECT@@QAEAAV1@H@Z
; private: void __thiscall HIER_LBI::AdjustDescendantCount(int)
?AdjustDescendantCount@HIER_LBI@@AAEXH@Z
; private: void __thiscall LBI_HEAP::AdjustDownwards(int)
?AdjustDownwards@LBI_HEAP@@AAEXH@Z
; public: class XYRECT & __thiscall XYRECT::AdjustLeft(int)
?AdjustLeft@XYRECT@@QAEAAV1@H@Z
; public: class XYRECT & __thiscall XYRECT::AdjustRight(int)
?AdjustRight@XYRECT@@QAEAAV1@H@Z
; public: class XYRECT & __thiscall XYRECT::AdjustTop(int)
?AdjustTop@XYRECT@@QAEAAV1@H@Z
; private: void __thiscall LBI_HEAP::AdjustUpwards(int)
?AdjustUpwards@LBI_HEAP@@AAEXH@Z
; private: void __thiscall HIER_LBI::Adopt(class HIER_LBI *,int)
?Adopt@HIER_LBI@@AAEXPAV1@H@Z
; public: void __thiscall PROGRESS_CONTROL::Advance(int)
?Advance@PROGRESS_CONTROL@@QAEXH@Z
; protected: virtual void __thiscall CONTROL_GROUP::AfterGroupActions(void)
?AfterGroupActions@CONTROL_GROUP@@MAEXXZ
; public: void __thiscall USER_BROWSER_LBI::AliasUnicodeStrToDisplayName(struct _UNICODE_STRING *)
?AliasUnicodeStrToDisplayName@USER_BROWSER_LBI@@QAEXPAU_UNICODE_STRING@@@Z
; public: long __thiscall DLIST_OF_SPIN_ITEM::Append(class SPIN_ITEM * const)
?Append@DLIST_OF_SPIN_ITEM@@QAEJQAVSPIN_ITEM@@@Z
; public: long __thiscall MENU_BASE::Append(unsigned short const *,unsigned int,unsigned int)const 
?Append@MENU_BASE@@QBEJPBGII@Z
; public: long __thiscall MENU_BASE::Append(unsigned short const *,struct HMENU__ *,unsigned int)const 
?Append@MENU_BASE@@QBEJPBGPAUHMENU__@@I@Z
; public: long __thiscall SLIST_OF_NLS_STR::Append(class NLS_STR const *)
?Append@SLIST_OF_NLS_STR@@QAEJPBVNLS_STR@@@Z
; public: long __thiscall SLIST_OF_STRING_BITSET_PAIR::Append(class STRING_BITSET_PAIR const *)
?Append@SLIST_OF_STRING_BITSET_PAIR@@QAEJPBVSTRING_BITSET_PAIR@@@Z
; public: long __thiscall SLIST_OF_UI_EXT::Append(class UI_EXT const *)
?Append@SLIST_OF_UI_EXT@@QAEJPBVUI_EXT@@@Z
; public: long __thiscall SLIST_OF_ULC_API_BUFFER::Append(class ULC_API_BUFFER const *)
?Append@SLIST_OF_ULC_API_BUFFER@@QAEJPBVULC_API_BUFFER@@@Z
; public: long __thiscall SLIST_OF_USER_BROWSER_LBI::Append(class USER_BROWSER_LBI const *)
?Append@SLIST_OF_USER_BROWSER_LBI@@QAEJPBVUSER_BROWSER_LBI@@@Z
; public: virtual long __thiscall DM_DTE::AppendDataTo(class NLS_STR *)const 
?AppendDataTo@DM_DTE@@UBEJPAVNLS_STR@@@Z
; public: virtual long __thiscall STR_DTE::AppendDataTo(class NLS_STR *)const 
?AppendDataTo@STR_DTE@@UBEJPAVNLS_STR@@@Z
; public: long __thiscall MENU_BASE::AppendSeparator(void)const 
?AppendSeparator@MENU_BASE@@QBEJXZ
; public: long __thiscall SET_OF_AUDIT_CATEGORIES::ApplyPermissionsToCheckBoxes(class BITFIELD *,class BITFIELD *)
?ApplyPermissionsToCheckBoxes@SET_OF_AUDIT_CATEGORIES@@QAEJPAVBITFIELD@@0@Z
; public: int __thiscall NT_USER_BROWSER_DIALOG::AreUsersShown(void)const 
?AreUsersShown@NT_USER_BROWSER_DIALOG@@QBEHXZ
; protected: unsigned short const * __thiscall ATOM_BASE::AssignAux(unsigned short const *)
?AssignAux@ATOM_BASE@@IAEPBGPBG@Z
; public: long __thiscall POPUP_MENU::Attach(class PWND2HWND const &)
?Attach@POPUP_MENU@@QAEJABVPWND2HWND@@@Z
; long __stdcall BLTDoubleChar(class NLS_STR *,unsigned short)
?BLTDoubleChar@@YGJPAVNLS_STR@@G@Z
; protected: virtual long __thiscall SET_CONTROL::BLTMoveItems(class BLT_LISTBOX *,class BLT_LISTBOX *)
?BLTMoveItems@SET_CONTROL@@MAEJPAVBLT_LISTBOX@@0@Z
; int __stdcall BLTPoints2LogUnits(int)
?BLTPoints2LogUnits@@YGHH@Z
; private: void __thiscall LOGON_HOURS_CONTROL::Beep(void)const 
?Beep@LOGON_HOURS_CONTROL@@ABEXXZ
; protected: long __thiscall UI_MENU_EXT::BiasMenuIds(unsigned long)
?BiasMenuIds@UI_MENU_EXT@@IAEJK@Z
; public: int __thiscall USER_LBI_CACHE::BinarySearch(struct _DOMAIN_DISPLAY_USER *)
?BinarySearch@USER_LBI_CACHE@@QAEHPAU_DOMAIN_DISPLAY_USER@@@Z
; public: int __thiscall USER_LBI_CACHE::BinarySearch(class LBI *)
?BinarySearch@USER_LBI_CACHE@@QAEHPAVLBI@@@Z
; public: int __thiscall DEVICE_CONTEXT::BitBlt(class XYPOINT const &,class XYDIMENSION,class DEVICE_CONTEXT const &,class XYPOINT const &,unsigned long)
?BitBlt@DEVICE_CONTEXT@@QAEHABVXYPOINT@@VXYDIMENSION@@ABV1@0K@Z
; public: int __thiscall DEVICE_CONTEXT::BitBlt(int,int,int,int,class DEVICE_CONTEXT const &,int,int,unsigned long)
?BitBlt@DEVICE_CONTEXT@@QAEHHHHHABV1@HHK@Z
; public: long __thiscall MASK_MAP::BitsToString(class BITFIELD const &,class NLS_STR *,int,unsigned int *)
?BitsToString@MASK_MAP@@QAEJABVBITFIELD@@PAVNLS_STR@@HPAI@Z
; protected: long __thiscall USER_BROWSER_LBI_CACHE::BuildAndAddLBI(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,void * const,enum UI_SystemSid,enum _SID_NAME_USE,unsigned long)
?BuildAndAddLBI@USER_BROWSER_LBI_CACHE@@IAEJPBG0000QAXW4UI_SystemSid@@W4_SID_NAME_USE@@K@Z
; protected: long __thiscall ACCOUNT_NAMES_MLE::BuildNameListFromStrList(class NLS_STR *,class STRLIST *)
?BuildNameListFromStrList@ACCOUNT_NAMES_MLE@@IAEJPAVNLS_STR@@PAVSTRLIST@@@Z
; protected: static long __stdcall BLT_COMBOBOX::CBSubclassProc(struct HWND__ *,unsigned int,unsigned int,long)
?CBSubclassProc@BLT_COMBOBOX@@KGJPAUHWND__@@IIJ@Z
; protected: virtual int __thiscall BLT_LISTBOX::CD_Char(unsigned short,unsigned short)
?CD_Char@BLT_LISTBOX@@MAEHGG@Z
; protected: virtual int __thiscall BLT_LISTBOX_HAW::CD_Char(unsigned short,unsigned short)
?CD_Char@BLT_LISTBOX_HAW@@MAEHGG@Z
; protected: virtual int __thiscall CONTROL_WINDOW::CD_Char(unsigned short,unsigned short)
?CD_Char@CONTROL_WINDOW@@MAEHGG@Z
; protected: virtual int __thiscall LM_OLLB::CD_Char(unsigned short,unsigned short)
?CD_Char@LM_OLLB@@MAEHGG@Z
; protected: virtual int __thiscall OUTLINE_LISTBOX::CD_Char(unsigned short,unsigned short)
?CD_Char@OUTLINE_LISTBOX@@MAEHGG@Z
; protected: virtual int __thiscall STATELB::CD_Char(unsigned short,unsigned short)
?CD_Char@STATELB@@MAEHGG@Z
; protected: virtual int __thiscall USER_BROWSER_LB::CD_Char(unsigned short,unsigned short)
?CD_Char@USER_BROWSER_LB@@MAEHGG@Z
; protected: int __thiscall BLT_LISTBOX::CD_Char_HAWforHawaii(unsigned short,unsigned short,class HAW_FOR_HAWAII_INFO *)
?CD_Char_HAWforHawaii@BLT_LISTBOX@@IAEHGGPAVHAW_FOR_HAWAII_INFO@@@Z
; protected: int __thiscall USER_BROWSER_LB::CD_Char_HAWforHawaii(unsigned short,unsigned short,class HAW_FOR_HAWAII_INFO *)
?CD_Char_HAWforHawaii@USER_BROWSER_LB@@IAEHGGPAVHAW_FOR_HAWAII_INFO@@@Z
; protected: virtual int __thiscall CONTROL_WINDOW::CD_Draw(struct tagDRAWITEMSTRUCT *)
?CD_Draw@CONTROL_WINDOW@@MAEHPAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual int __thiscall GRAPHICAL_BUTTON::CD_Draw(struct tagDRAWITEMSTRUCT *)
?CD_Draw@GRAPHICAL_BUTTON@@MAEHPAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual int __thiscall GRAPHICAL_BUTTON_WITH_DISABLE::CD_Draw(struct tagDRAWITEMSTRUCT *)
?CD_Draw@GRAPHICAL_BUTTON_WITH_DISABLE@@MAEHPAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual int __thiscall LISTBOX::CD_Draw(struct tagDRAWITEMSTRUCT *)
?CD_Draw@LISTBOX@@MAEHPAUtagDRAWITEMSTRUCT@@@Z
; protected: virtual long __thiscall BLT_LISTBOX::CD_Guiltt(int,class NLS_STR *)
?CD_Guiltt@BLT_LISTBOX@@MAEJHPAVNLS_STR@@@Z
; protected: virtual long __thiscall CONTROL_WINDOW::CD_Guiltt(int,class NLS_STR *)
?CD_Guiltt@CONTROL_WINDOW@@MAEJHPAVNLS_STR@@@Z
; protected: virtual long __thiscall LAZY_LISTBOX::CD_Guiltt(int,class NLS_STR *)
?CD_Guiltt@LAZY_LISTBOX@@MAEJHPAVNLS_STR@@@Z
; protected: virtual int __thiscall BLT_LISTBOX::CD_Measure(struct tagMEASUREITEMSTRUCT *)
?CD_Measure@BLT_LISTBOX@@MAEHPAUtagMEASUREITEMSTRUCT@@@Z
; protected: virtual int __thiscall CONTROL_WINDOW::CD_Measure(struct tagMEASUREITEMSTRUCT *)
?CD_Measure@CONTROL_WINDOW@@MAEHPAUtagMEASUREITEMSTRUCT@@@Z
; protected: virtual int __thiscall CONTROL_WINDOW::CD_VKey(unsigned short,unsigned short)
?CD_VKey@CONTROL_WINDOW@@MAEHGG@Z
; protected: virtual int __thiscall LISTBOX::CD_VKey(unsigned short,unsigned short)
?CD_VKey@LISTBOX@@MAEHGG@Z
; protected: virtual int __thiscall STATELB::CD_VKey(unsigned short,unsigned short)
?CD_VKey@STATELB@@MAEHGG@Z
; protected: virtual int __thiscall USER_BROWSER_LB::CD_VKey(unsigned short,unsigned short)
?CD_VKey@USER_BROWSER_LB@@MAEHGG@Z
; protected: void __thiscall CONTROL_GROUP::CVRestoreValue(class CONTROL_VALUE *,int)
?CVRestoreValue@CONTROL_GROUP@@IAEXPAVCONTROL_VALUE@@H@Z
; public: void __thiscall CUSTOM_CONTROL::CVRestoreValue(int)
?CVRestoreValue@CUSTOM_CONTROL@@QAEXH@Z
; protected: void __thiscall CONTROL_GROUP::CVSaveValue(class CONTROL_VALUE *,int)
?CVSaveValue@CONTROL_GROUP@@IAEXPAVCONTROL_VALUE@@H@Z
; public: void __thiscall CUSTOM_CONTROL::CVSaveValue(int)
?CVSaveValue@CUSTOM_CONTROL@@QAEXH@Z
; private: struct HICON__ * __thiscall SET_CONTROL::CalcAppropriateCursor(class LISTBOX *,class LISTBOX *,class XYPOINT const &)const 
?CalcAppropriateCursor@SET_CONTROL@@ABEPAUHICON__@@PAVLISTBOX@@0ABVXYPOINT@@@Z
; private: static unsigned int __stdcall METALLIC_STR_DTE::CalcBottomTextMargin(void)
?CalcBottomTextMargin@METALLIC_STR_DTE@@CGIXZ
; private: int __thiscall LOGON_HOURS_CONTROL::CalcButtonFromPoint(class XYPOINT)const 
?CalcButtonFromPoint@LOGON_HOURS_CONTROL@@ABEHVXYPOINT@@@Z
; public: static long __stdcall DISPLAY_TABLE::CalcColumnWidths(unsigned int *,unsigned int,class OWNER_WINDOW *,unsigned int,int)
?CalcColumnWidths@DISPLAY_TABLE@@SGJPAIIPAVOWNER_WINDOW@@IH@Z
; private: static int __stdcall POPUP::CalcDefButton(unsigned int,unsigned int)
?CalcDefButton@POPUP@@CGHII@Z
; protected: static int __stdcall OWNER_WINDOW::CalcFixedCDMeasure(struct HWND__ *,struct tagMEASUREITEMSTRUCT *)
?CalcFixedCDMeasure@OWNER_WINDOW@@KGHPAUHWND__@@PAUtagMEASUREITEMSTRUCT@@@Z
; protected: static int __stdcall WINDOW::CalcFixedHeight(struct HWND__ *,unsigned int *)
?CalcFixedHeight@WINDOW@@KGHPAUHWND__@@PAI@Z
; private: void __thiscall LOGON_HOURS_CONTROL::CalcGridRect(class XYRECT *)const 
?CalcGridRect@LOGON_HOURS_CONTROL@@ABEXPAVXYRECT@@@Z
; public: virtual unsigned int __thiscall LBI::CalcHeight(unsigned int)
?CalcHeight@LBI@@UAEII@Z
; public: int __thiscall XYRECT::CalcHeight(void)const 
?CalcHeight@XYRECT@@QBEHXZ
; public: static unsigned short const * __stdcall BLT::CalcHelpFileHC(unsigned long)
?CalcHelpFileHC@BLT@@SGPBGK@Z
; public: static struct HINSTANCE__ * __stdcall BLT::CalcHmodRsrc(class IDRESOURCE const &)
?CalcHmodRsrc@BLT@@SGPAUHINSTANCE__@@ABVIDRESOURCE@@@Z
; public: static struct HINSTANCE__ * __stdcall BLT::CalcHmodString(long)
?CalcHmodString@BLT@@SGPAUHINSTANCE__@@J@Z
; public: class XYRECT & __thiscall XYRECT::CalcIntersect(class XYRECT const &,class XYRECT const &)
?CalcIntersect@XYRECT@@QAEAAV1@ABV1@0@Z
; private: void __thiscall LOGON_HOURS_CONTROL::CalcRectForCell(class XYRECT *,int)const 
?CalcRectForCell@LOGON_HOURS_CONTROL@@ABEXPAVXYRECT@@H@Z
; private: void __thiscall LOGON_HOURS_CONTROL::CalcRectForCorner(class XYRECT *)const 
?CalcRectForCorner@LOGON_HOURS_CONTROL@@ABEXPAVXYRECT@@@Z
; private: void __thiscall LOGON_HOURS_CONTROL::CalcRectForDay(class XYRECT *,int)const 
?CalcRectForDay@LOGON_HOURS_CONTROL@@ABEXPAVXYRECT@@H@Z
; private: void __thiscall LOGON_HOURS_CONTROL::CalcRectForHour(class XYRECT *,int)const 
?CalcRectForHour@LOGON_HOURS_CONTROL@@ABEXPAVXYRECT@@H@Z
; public: long __thiscall BLT_LISTBOX::CalcSingleLineHeight(void)
?CalcSingleLineHeight@BLT_LISTBOX@@QAEJXZ
; private: long __thiscall LOGON_HOURS_CONTROL::CalcSizes(class XYDIMENSION)
?CalcSizes@LOGON_HOURS_CONTROL@@AAEJVXYDIMENSION@@@Z
; private: static unsigned int __stdcall METALLIC_STR_DTE::CalcTopTextMargin(void)
?CalcTopTextMargin@METALLIC_STR_DTE@@CGIXZ
; public: class XYRECT & __thiscall XYRECT::CalcUnion(class XYRECT const &,class XYRECT const &)
?CalcUnion@XYRECT@@QAEAAV1@ABV1@0@Z
; public: int __thiscall XYRECT::CalcWidth(void)const 
?CalcWidth@XYRECT@@QBEHXZ
; public: long __thiscall ACCOUNT_NAMES_MLE::CanonicalizeNames(unsigned short const *,class STRLIST *)
?CanonicalizeNames@ACCOUNT_NAMES_MLE@@QAEJPBGPAVSTRLIST@@@Z
; public: void __thiscall CLIENT_WINDOW::CaptureMouse(void)
?CaptureMouse@CLIENT_WINDOW@@QAEXXZ
; public: void __thiscall DISPATCHER::CaptureMouse(void)
?CaptureMouse@DISPATCHER@@QAEXXZ
; public: void __thiscall WINDOW::Center(struct HWND__ *)
?Center@WINDOW@@QAEXPAUHWND__@@@Z
; public: int __thiscall SPIN_GROUP::ChangeFieldValue(unsigned short,int)
?ChangeFieldValue@SPIN_GROUP@@QAEHGH@Z
; public: void __thiscall AUDIT_CHECKBOXES::CheckFailed(int)
?CheckFailed@AUDIT_CHECKBOXES@@QAEXH@Z
; public: unsigned int __thiscall MENU_BASE::CheckItem(unsigned int,int,unsigned int)const 
?CheckItem@MENU_BASE@@QBEIIHI@Z
; protected: long __thiscall ACCOUNT_NAMES_MLE::CheckLookedUpNames(unsigned short * *,class LSA_TRANSLATED_SID_MEM *,class STRLIST *,class NLS_STR *,unsigned short const *,long *)
?CheckLookedUpNames@ACCOUNT_NAMES_MLE@@IAEJPAPAGPAVLSA_TRANSLATED_SID_MEM@@PAVSTRLIST@@PAVNLS_STR@@PBGPAJ@Z
; public: static long __stdcall ACCOUNT_NAMES_MLE::CheckNameType(enum _SID_NAME_USE,unsigned long)
?CheckNameType@ACCOUNT_NAMES_MLE@@SGJW4_SID_NAME_USE@@K@Z
; public: int __thiscall CHANGEABLE_SPIN_ITEM::CheckRange(unsigned long)const 
?CheckRange@CHANGEABLE_SPIN_ITEM@@QBEHK@Z
; public: void __thiscall AUDIT_CHECKBOXES::CheckSuccess(int)
?CheckSuccess@AUDIT_CHECKBOXES@@QAEXH@Z
; public: virtual int __thiscall CHANGEABLE_SPIN_ITEM::CheckValid(void)
?CheckValid@CHANGEABLE_SPIN_ITEM@@UAEHXZ
; public: virtual int __thiscall SPIN_SLE_NUM_VALID::CheckValid(void)
?CheckValid@SPIN_SLE_NUM_VALID@@UAEHXZ
; public: class CONTROL_WINDOW * __thiscall CONTROL_TABLE::CidToCtrlPtr(unsigned int)const 
?CidToCtrlPtr@CONTROL_TABLE@@QBEPAVCONTROL_WINDOW@@I@Z
; protected: class CONTROL_WINDOW * __thiscall OWNER_WINDOW::CidToCtrlPtr(unsigned int)const 
?CidToCtrlPtr@OWNER_WINDOW@@IBEPAVCONTROL_WINDOW@@I@Z
; public: void __thiscall CONTROL_WINDOW::ClaimFocus(void)
?ClaimFocus@CONTROL_WINDOW@@QAEXXZ
; public: void __thiscall ARRAY_LIST_CONTROLVAL_CID_PAIR::Clear(void)
?Clear@ARRAY_LIST_CONTROLVAL_CID_PAIR@@QAEXXZ
; public: void __thiscall DLIST_OF_SPIN_ITEM::Clear(void)
?Clear@DLIST_OF_SPIN_ITEM@@QAEXXZ
; public: void __thiscall SLIST_OF_ASSOCHCFILE::Clear(void)
?Clear@SLIST_OF_ASSOCHCFILE@@QAEXXZ
; public: void __thiscall SLIST_OF_CLIENTDATA::Clear(void)
?Clear@SLIST_OF_CLIENTDATA@@QAEXXZ
; public: void __thiscall SLIST_OF_OS_SID::Clear(void)
?Clear@SLIST_OF_OS_SID@@QAEXXZ
; public: void __thiscall SLIST_OF_STRING_BITSET_PAIR::Clear(void)
?Clear@SLIST_OF_STRING_BITSET_PAIR@@QAEXXZ
; public: void __thiscall SLIST_OF_TIMER_BASE::Clear(void)
?Clear@SLIST_OF_TIMER_BASE@@QAEXXZ
; public: void __thiscall SLIST_OF_UI_EXT::Clear(void)
?Clear@SLIST_OF_UI_EXT@@QAEXXZ
; public: void __thiscall SLIST_OF_ULC_API_BUFFER::Clear(void)
?Clear@SLIST_OF_ULC_API_BUFFER@@QAEXXZ
; public: void __thiscall SLIST_OF_USER_BROWSER_LBI::Clear(void)
?Clear@SLIST_OF_USER_BROWSER_LBI@@QAEXXZ
; private: void __thiscall H_SPLITTER_BAR::ClearDragBar(void)
?ClearDragBar@H_SPLITTER_BAR@@AAEXXZ
; public: static unsigned long __stdcall BLT_MASTER_TIMER::ClearMasterTimerHotkey(void)
?ClearMasterTimerHotkey@BLT_MASTER_TIMER@@SGKXZ
; public: void __thiscall SLT_ELLIPSIS::ClearText(void)
?ClearText@SLT_ELLIPSIS@@QAEXXZ
; public: void __thiscall WINDOW::ClearText(void)
?ClearText@WINDOW@@QAEXXZ
; public: void __thiscall XYPOINT::ClientToScreen(struct HWND__ *)
?ClientToScreen@XYPOINT@@QAEXPAUHWND__@@@Z
; public: void __thiscall APP_WINDOW::Close(void)
?Close@APP_WINDOW@@QAEXXZ
; public: long __thiscall WIN32_HANDLE::Close(void)
?Close@WIN32_HANDLE@@QAEJXZ
; protected: void __thiscall OPEN_DIALOG_BASE::CloseFile(class OPEN_LBI_BASE *)
?CloseFile@OPEN_DIALOG_BASE@@IAEXPAVOPEN_LBI_BASE@@@Z
; protected: static int __stdcall USER_LBI_CACHE::CmpUniStrs(struct _UNICODE_STRING const *,struct _UNICODE_STRING const *)
?CmpUniStrs@USER_LBI_CACHE@@KGHPBU_UNICODE_STRING@@0@Z
; public: long __thiscall LM_OLLB::CollapseDomain(int)
?CollapseDomain@LM_OLLB@@QAEJH@Z
; public: long __thiscall LM_OLLB::CollapseDomain(void)
?CollapseDomain@LM_OLLB@@QAEJXZ
; public: void __thiscall HIER_LISTBOX::CollapseItem(int,int)
?CollapseItem@HIER_LISTBOX@@QAEXHH@Z
; public: void __thiscall HIER_LISTBOX::CollapseItem(class HIER_LBI *,int)
?CollapseItem@HIER_LISTBOX@@QAEXPAVHIER_LBI@@H@Z
; int __stdcall CommDlgHookProc(struct HWND__ *,unsigned short,unsigned int,long)
?CommDlgHookProc@@YGHPAUHWND__@@GIJ@Z
; public: unsigned long __thiscall WINDOW::Command(unsigned int,unsigned int,long)const 
?Command@WINDOW@@QBEKIIJ@Z
; public: virtual int __thiscall BROWSER_DOMAIN_LBI::Compare(class LBI const *)const 
?Compare@BROWSER_DOMAIN_LBI@@UBEHPBVLBI@@@Z
; public: virtual int __thiscall BROWSER_DOMAIN_LBI_PB::Compare(class LBI const *)const 
?Compare@BROWSER_DOMAIN_LBI_PB@@UBEHPBVLBI@@@Z
; public: int __thiscall CONTROLVAL_CID_PAIR::Compare(class CONTROLVAL_CID_PAIR const *)const 
?Compare@CONTROLVAL_CID_PAIR@@QBEHPBV1@@Z
; public: virtual int __thiscall LBI::Compare(class LBI const *)const 
?Compare@LBI@@UBEHPBV1@@Z
; public: virtual int __thiscall OLLB_ENTRY::Compare(class LBI const *)const 
?Compare@OLLB_ENTRY@@UBEHPBVLBI@@@Z
; protected: virtual int __thiscall STLBITEM::Compare(class LBI const *)const 
?Compare@STLBITEM@@MBEHPBVLBI@@@Z
; public: virtual int __thiscall USER_BROWSER_LBI::Compare(class LBI const *)const 
?Compare@USER_BROWSER_LBI@@UBEHPBVLBI@@@Z
; protected: virtual int __thiscall USER_BROWSER_LBI_CACHE::Compare(class LBI const *,class LBI const *)const 
?Compare@USER_BROWSER_LBI_CACHE@@MBEHPBVLBI@@0@Z
; protected: virtual int __thiscall USER_BROWSER_LBI_CACHE::Compare(class LBI const *,struct _DOMAIN_DISPLAY_USER const *)const 
?Compare@USER_BROWSER_LBI_CACHE@@MBEHPBVLBI@@PBU_DOMAIN_DISPLAY_USER@@@Z
; public: int __thiscall USER_BROWSER_LBI::CompareAux(class LBI const *)const 
?CompareAux@USER_BROWSER_LBI@@QBEHPBVLBI@@@Z
; protected: static int __cdecl USER_BROWSER_LBI_CACHE::CompareCacheLBIs(struct _ULC_ENTRY_BASE const *,struct _ULC_ENTRY_BASE const *)
?CompareCacheLBIs@USER_BROWSER_LBI_CACHE@@KAHPBU_ULC_ENTRY_BASE@@0@Z
; protected: static int __cdecl USER_LBI_CACHE::CompareLogonNames(void const *,void const *)
?CompareLogonNames@USER_LBI_CACHE@@KAHPBX0@Z
; public: virtual int __thiscall LBI::Compare_HAWforHawaii(class NLS_STR const &)const 
?Compare_HAWforHawaii@LBI@@UBEHABVNLS_STR@@@Z
; public: virtual int __thiscall USER_BROWSER_LBI::Compare_HAWforHawaii(class NLS_STR const &)const 
?Compare_HAWforHawaii@USER_BROWSER_LBI@@UBEHABVNLS_STR@@@Z
; int __cdecl ComparepLBIs(class USER_BROWSER_LBI * const *,class USER_BROWSER_LBI * const *)
?ComparepLBIs@@YAHPBQAVUSER_BROWSER_LBI@@0@Z
; public: long __thiscall PROMPT_AND_CONNECT::Connect(void)
?Connect@PROMPT_AND_CONNECT@@QAEJXZ
; public: int __thiscall XYRECT::ContainsXY(class XYPOINT)const 
?ContainsXY@XYRECT@@QBEHVXYPOINT@@@Z
; protected: long __thiscall SLT_ELLIPSIS::ConvertAndSetStr(void)
?ConvertAndSetStr@SLT_ELLIPSIS@@IAEJXZ
; public: void __thiscall XYRECT::ConvertClientToScreen(struct HWND__ *)
?ConvertClientToScreen@XYRECT@@QAEXPAUHWND__@@@Z
; public: void __thiscall XYRECT::ConvertScreenToClient(struct HWND__ *)
?ConvertScreenToClient@XYRECT@@QAEXPAUHWND__@@@Z
; protected: virtual class LBI * __thiscall USER_BROWSER_LBI_CACHE::CreateLBI(struct _DOMAIN_DISPLAY_USER const *)
?CreateLBI@USER_BROWSER_LBI_CACHE@@MAEPAVLBI@@PBU_DOMAIN_DISPLAY_USER@@@Z
; public: long __thiscall ACCOUNT_NAMES_MLE::CreateLBIListFromNames(unsigned short const *,unsigned short const *,class SLIST_OF_USER_BROWSER_LBI *,class SLIST_OF_USER_BROWSER_LBI *,long *,class NLS_STR *)
?CreateLBIListFromNames@ACCOUNT_NAMES_MLE@@QAEJPBG0PAVSLIST_OF_USER_BROWSER_LBI@@1PAJPAVNLS_STR@@@Z
; long __stdcall CreateLBIsFromSids(void * const *,unsigned long,void * const,class LSA_POLICY *,unsigned short const *,class USER_BROWSER_LB *,class SLIST_OF_USER_BROWSER_LBI *)
?CreateLBIsFromSids@@YGJPBQAXKQAXPAVLSA_POLICY@@PBGPAVUSER_BROWSER_LB@@PAVSLIST_OF_USER_BROWSER_LBI@@@Z
; private: void __thiscall GRAPHICAL_BUTTON::CtAux(unsigned short const *,unsigned short const *,unsigned short const *)
?CtAux@GRAPHICAL_BUTTON@@AAEXPBG00@Z
; private: void __thiscall H_SPLITTER_BAR::CtAux(void)
?CtAux@H_SPLITTER_BAR@@AAEXXZ
; private: long __thiscall POPUP_MENU::CtAux(struct HMENU__ *)
?CtAux@POPUP_MENU@@AAEJPAUHMENU__@@@Z
; private: void __thiscall PROGRESS_CONTROL::CtAux(void)
?CtAux@PROGRESS_CONTROL@@AAEXXZ
; public: long __thiscall MENU_BASE::Delete(unsigned int,unsigned int)const 
?Delete@MENU_BASE@@QBEJII@Z
; public: void __thiscall LIST_CONTROL::DeleteAllItems(void)
?DeleteAllItems@LIST_CONTROL@@QAEXXZ
; protected: void __thiscall WIN32_THREAD::DeleteAndExit(unsigned int)
?DeleteAndExit@WIN32_THREAD@@IAEXI@Z
; public: void __thiscall HIER_LISTBOX::DeleteChildren(class HIER_LBI *)
?DeleteChildren@HIER_LISTBOX@@QAEXPAVHIER_LBI@@@Z
; public: void __thiscall DEVICE_COMBO::DeleteCurrentDeviceName(void)
?DeleteCurrentDeviceName@DEVICE_COMBO@@QAEXXZ
; public: int __thiscall HIER_LISTBOX::DeleteItem(int,int)
?DeleteItem@HIER_LISTBOX@@QAEHHH@Z
; public: int __thiscall LIST_CONTROL::DeleteItem(int)
?DeleteItem@LIST_CONTROL@@QAEHH@Z
; public: static void __stdcall BLT::DeregisterHelpFile(struct HINSTANCE__ *,unsigned long)
?DeregisterHelpFile@BLT@@SGXPAUHINSTANCE__@@K@Z
; public: long __thiscall POPUP_MENU::Destroy(void)
?Destroy@POPUP_MENU@@QAEJXZ
; protected: void __thiscall DIALOG_WINDOW::Dismiss(unsigned int)
?Dismiss@DIALOG_WINDOW@@IAEXI@Z
; protected: void __thiscall DIALOG_WINDOW::DismissMsg(long,unsigned int)
?DismissMsg@DIALOG_WINDOW@@IAEXJI@Z
; protected: virtual int __thiscall DISPATCHER::Dispatch(class EVENT const &,unsigned long *)
?Dispatch@DISPATCHER@@MAEHABVEVENT@@PAK@Z
; protected: virtual int __thiscall H_SPLITTER_BAR::Dispatch(class EVENT const &,unsigned long *)
?Dispatch@H_SPLITTER_BAR@@MAEHABVEVENT@@PAK@Z
; protected: virtual int __thiscall LB_COLUMN_HEADER::Dispatch(class EVENT const &,unsigned long *)
?Dispatch@LB_COLUMN_HEADER@@MAEHABVEVENT@@PAK@Z
; protected: virtual long __thiscall APP_WINDOW::DispatchMessageW(class EVENT const &)
?DispatchMessageW@APP_WINDOW@@MAEJABVEVENT@@@Z
; protected: virtual long __thiscall CLIENT_WINDOW::DispatchMessageW(class EVENT const &)
?DispatchMessageW@CLIENT_WINDOW@@MAEJABVEVENT@@@Z
; protected: virtual void __thiscall PROC_TIMER::DispatchTimer(void)
?DispatchTimer@PROC_TIMER@@MAEXXZ
; protected: virtual void __thiscall TIMER::DispatchTimer(void)
?DispatchTimer@TIMER@@MAEXXZ
; protected: virtual void __thiscall TIMER_BASE::DispatchTimer(void)
?DispatchTimer@TIMER_BASE@@MAEXXZ
; protected: virtual void __thiscall WINDOW_TIMER::DispatchTimer(void)
?DispatchTimer@WINDOW_TIMER@@MAEXXZ
; private: void __thiscall APPLICATION::DisplayCtError(long)
?DisplayCtError@APPLICATION@@AAEXJ@Z
; protected: virtual void __thiscall SPIN_SLE_NUM_VALID::DisplayErrorMsg(void)
?DisplayErrorMsg@SPIN_SLE_NUM_VALID@@MAEXXZ
; unsigned int __stdcall DisplayGenericError(class OWNINGWND const &,long,long,unsigned short const *,unsigned short const *,enum MSG_SEVERITY)
?DisplayGenericError@@YGIABVOWNINGWND@@JJPBG1W4MSG_SEVERITY@@@Z
; unsigned int __stdcall DisplayGenericError(class OWNINGWND const &,long,long,unsigned short const *,enum MSG_SEVERITY)
?DisplayGenericError@@YGIABVOWNINGWND@@JJPBGW4MSG_SEVERITY@@@Z
; private: void __thiscall SPIN_SLE_NUM::DisplayNum(unsigned long)
?DisplayNum@SPIN_SLE_NUM@@AAEXK@Z
; public: static int __stdcall DIALOG_WINDOW::DlgProc(struct HWND__ *,unsigned int,unsigned int,long)
?DlgProc@DIALOG_WINDOW@@SGHPAUHWND__@@IIJ@Z
; public: virtual long __thiscall SET_CONTROL::DoAdd(void)
?DoAdd@SET_CONTROL@@UAEJXZ
; private: long __thiscall SET_CONTROL::DoAddOrRemove(class LISTBOX *,class LISTBOX *)
?DoAddOrRemove@SET_CONTROL@@AAEJPAVLISTBOX@@0@Z
; public: int __thiscall SPIN_GROUP::DoArrowCommand(unsigned int,unsigned short)
?DoArrowCommand@SPIN_GROUP@@QAEHIG@Z
; public: void __thiscall LOGON_HOURS_CONTROL::DoBanButton(void)
?DoBanButton@LOGON_HOURS_CONTROL@@QAEXXZ
; private: void __thiscall LOGON_HOURS_CONTROL::DoButtonClick(int)
?DoButtonClick@LOGON_HOURS_CONTROL@@AAEXH@Z
; private: void __thiscall LOGON_HOURS_CONTROL::DoButtonDownVisuals(void)
?DoButtonDownVisuals@LOGON_HOURS_CONTROL@@AAEXXZ
; private: void __thiscall LOGON_HOURS_CONTROL::DoButtonUpVisuals(int)
?DoButtonUpVisuals@LOGON_HOURS_CONTROL@@AAEXH@Z
; public: int __thiscall DISPATCHER::DoChar(class CHAR_EVENT const &)
?DoChar@DISPATCHER@@QAEHABVCHAR_EVENT@@@Z
; public: int __thiscall SPIN_GROUP::DoChar(class CHAR_EVENT const &)
?DoChar@SPIN_GROUP@@QAEHABVCHAR_EVENT@@@Z
; public: int __thiscall SPIN_GROUP::DoNewFocus(class SPIN_ITEM *)
?DoNewFocus@SPIN_GROUP@@QAEHPAVSPIN_ITEM@@@Z
; protected: virtual long __thiscall CANCEL_TASK_DIALOG::DoOneItem(unsigned long,int *,int *,long *)
?DoOneItem@CANCEL_TASK_DIALOG@@MAEJKPAH0PAJ@Z
; public: void __thiscall LOGON_HOURS_CONTROL::DoPermitButton(void)
?DoPermitButton@LOGON_HOURS_CONTROL@@QAEXXZ
; public: virtual long __thiscall SET_CONTROL::DoRemove(void)
?DoRemove@SET_CONTROL@@UAEJXZ
; protected: long __thiscall NT_FIND_ACCOUNT_DIALOG::DoSearch(void)
?DoSearch@NT_FIND_ACCOUNT_DIALOG@@IAEJXZ
; public: int __thiscall DISPATCHER::DoUserMessage(class EVENT const &)
?DoUserMessage@DISPATCHER@@QAEHABVEVENT@@@Z
; private: int __thiscall LOGON_HOURS_CONTROL::DrawAllButtons(class PAINT_DISPLAY_CONTEXT &)const 
?DrawAllButtons@LOGON_HOURS_CONTROL@@ABEHAAVPAINT_DISPLAY_CONTEXT@@@Z
; private: int __thiscall LOGON_HOURS_CONTROL::DrawBackground(class PAINT_DISPLAY_CONTEXT &)const 
?DrawBackground@LOGON_HOURS_CONTROL@@ABEHAAVPAINT_DISPLAY_CONTEXT@@@Z
; private: void __thiscall LOGON_HOURS_CONTROL::DrawCurrentSelection(class DISPLAY_CONTEXT const &)const 
?DrawCurrentSelection@LOGON_HOURS_CONTROL@@ABEXABVDISPLAY_CONTEXT@@@Z
; private: void __thiscall LOGON_HOURS_CONTROL::DrawFocusOnCell(class DISPLAY_CONTEXT const &,int)const 
?DrawFocusOnCell@LOGON_HOURS_CONTROL@@ABEXABVDISPLAY_CONTEXT@@H@Z
; private: void __thiscall LOGON_HOURS_CONTROL::DrawFocusOnCornerButton(class DISPLAY_CONTEXT const &)const 
?DrawFocusOnCornerButton@LOGON_HOURS_CONTROL@@ABEXABVDISPLAY_CONTEXT@@@Z
; private: void __thiscall LOGON_HOURS_CONTROL::DrawFocusOnDayButton(class DISPLAY_CONTEXT const &,int)const 
?DrawFocusOnDayButton@LOGON_HOURS_CONTROL@@ABEXABVDISPLAY_CONTEXT@@H@Z
; private: void __thiscall LOGON_HOURS_CONTROL::DrawFocusOnHourButton(class DISPLAY_CONTEXT const &,int)const 
?DrawFocusOnHourButton@LOGON_HOURS_CONTROL@@ABEXABVDISPLAY_CONTEXT@@H@Z
; public: void __thiscall DEVICE_CONTEXT::DrawFocusRect(struct tagRECT const *)const 
?DrawFocusRect@DEVICE_CONTEXT@@QBEXPBUtagRECT@@@Z
; protected: void __thiscall FOCUS_CHECKBOX::DrawFocusRect(class DEVICE_CONTEXT *,struct tagRECT *,int)
?DrawFocusRect@FOCUS_CHECKBOX@@IAEXPAVDEVICE_CONTEXT@@PAUtagRECT@@H@Z
; private: void __thiscall LOGON_HOURS_CONTROL::DrawFocusSomewhere(class DISPLAY_CONTEXT const &,int)const 
?DrawFocusSomewhere@LOGON_HOURS_CONTROL@@ABEXABVDISPLAY_CONTEXT@@H@Z
; private: int __thiscall LOGON_HOURS_CONTROL::DrawGridSetting(class PAINT_DISPLAY_CONTEXT &)const 
?DrawGridSetting@LOGON_HOURS_CONTROL@@ABEHAAVPAINT_DISPLAY_CONTEXT@@@Z
; private: int __thiscall LOGON_HOURS_CONTROL::DrawGridWires(class PAINT_DISPLAY_CONTEXT &)const 
?DrawGridWires@LOGON_HOURS_CONTROL@@ABEHAAVPAINT_DISPLAY_CONTEXT@@@Z
; private: int __thiscall APP_WINDOW::DrawIcon(void)
?DrawIcon@APP_WINDOW@@AAEHXZ
; public: long __thiscall APP_WINDOW::DrawMenuBar(void)const 
?DrawMenuBar@APP_WINDOW@@QBEJXZ
; private: void __thiscall LOGON_HOURS_CONTROL::DrawOneCornerButton(class PAINT_DISPLAY_CONTEXT &,class XYRECT const &,int,struct HBRUSH__ *,struct HPEN__ *,struct HPEN__ *)const 
?DrawOneCornerButton@LOGON_HOURS_CONTROL@@ABEXAAVPAINT_DISPLAY_CONTEXT@@ABVXYRECT@@HPAUHBRUSH__@@PAUHPEN__@@3@Z
; private: int __thiscall LOGON_HOURS_CONTROL::DrawOneDayBar(class PAINT_DISPLAY_CONTEXT &,int,int,int,struct HBRUSH__ *)const 
?DrawOneDayBar@LOGON_HOURS_CONTROL@@ABEHAAVPAINT_DISPLAY_CONTEXT@@HHHPAUHBRUSH__@@@Z
; private: void __thiscall LOGON_HOURS_CONTROL::DrawOneFlatButton(class PAINT_DISPLAY_CONTEXT &,class XYRECT const &,int,struct HBRUSH__ *,struct HPEN__ *,struct HPEN__ *)const 
?DrawOneFlatButton@LOGON_HOURS_CONTROL@@ABEXAAVPAINT_DISPLAY_CONTEXT@@ABVXYRECT@@HPAUHBRUSH__@@PAUHPEN__@@3@Z
; public: void __thiscall DEVICE_CONTEXT::DrawRect(struct tagRECT const *)const 
?DrawRect@DEVICE_CONTEXT@@QBEXPBUtagRECT@@@Z
; private: void __thiscall LOGON_HOURS_CONTROL::DrawSelectionOnCell(class DISPLAY_CONTEXT const &,int)const 
?DrawSelectionOnCell@LOGON_HOURS_CONTROL@@ABEXABVDISPLAY_CONTEXT@@H@Z
; private: void __thiscall LOGON_HOURS_CONTROL::DrawSelectionOnCells(class DISPLAY_CONTEXT const &,int,int)const 
?DrawSelectionOnCells@LOGON_HOURS_CONTROL@@ABEXABVDISPLAY_CONTEXT@@HH@Z
; public: int __thiscall DEVICE_CONTEXT::DrawTextW(class NLS_STR const &,struct tagRECT *,unsigned int)
?DrawTextW@DEVICE_CONTEXT@@QAEHABVNLS_STR@@PAUtagRECT@@I@Z
; private: int __thiscall POPUP::Emergency(void)const 
?Emergency@POPUP@@ABEHXZ
; public: void __thiscall AUDIT_CHECKBOXES::Enable(int,int)
?Enable@AUDIT_CHECKBOXES@@QAEXHH@Z
; public: void __thiscall MAGIC_GROUP::Enable(int)
?Enable@MAGIC_GROUP@@QAEXH@Z
; public: void __thiscall MENUITEM::Enable(int)
?Enable@MENUITEM@@QAEXH@Z
; public: void __thiscall RADIO_GROUP::Enable(int)
?Enable@RADIO_GROUP@@QAEXH@Z
; public: void __thiscall SET_OF_AUDIT_CATEGORIES::Enable(int,int)
?Enable@SET_OF_AUDIT_CATEGORIES@@QAEXHH@Z
; public: void __thiscall TIMER_BASE::Enable(int)
?Enable@TIMER_BASE@@QAEXH@Z
; public: void __thiscall WINDOW::Enable(int)
?Enable@WINDOW@@QAEXH@Z
; protected: void __thiscall NT_USER_BROWSER_DIALOG::EnableBrowsing(int)
?EnableBrowsing@NT_USER_BROWSER_DIALOG@@IAEXH@Z
; protected: void __thiscall SET_CONTROL::EnableButtons(void)
?EnableButtons@SET_CONTROL@@IAEXXZ
; public: unsigned int __thiscall MENU_BASE::EnableItem(unsigned int,int,unsigned int)const 
?EnableItem@MENU_BASE@@QBEIIHI@Z
; public: void __thiscall SET_CONTROL::EnableMoves(int)
?EnableMoves@SET_CONTROL@@QAEXH@Z
; public: void __thiscall TRISTATE::EnableThirdState(int)
?EnableThirdState@TRISTATE@@QAEXH@Z
; public: static long __stdcall BLTIMP::EnterBLTCritSect(void)
?EnterBLTCritSect@BLTIMP@@SGJXZ
; public: static long __stdcall BLTIMP::EnterResourceCritSect(void)
?EnterResourceCritSect@BLTIMP@@SGJXZ
; public: long __thiscall MASK_MAP::EnumBits(class BITFIELD *,int *,int *,int)
?EnumBits@MASK_MAP@@QAEJPAVBITFIELD@@PAH1H@Z
; public: long __thiscall MASK_MAP::EnumStrings(class NLS_STR *,int *,int *,int)
?EnumStrings@MASK_MAP@@QAEJPAVNLS_STR@@PAH1H@Z
; protected: void __thiscall FOCUS_CHECKBOX::EraseFocusRect(class DEVICE_CONTEXT *,struct tagRECT *)
?EraseFocusRect@FOCUS_CHECKBOX@@IAEXPAVDEVICE_CONTEXT@@PAUtagRECT@@@Z
; private: void __thiscall LOGON_HOURS_CONTROL::EraseSelection(class DISPLAY_CONTEXT const &)
?EraseSelection@LOGON_HOURS_CONTROL@@AAEXABVDISPLAY_CONTEXT@@@Z
; protected: void __thiscall WIN32_THREAD::Exit(unsigned int)
?Exit@WIN32_THREAD@@IAEXI@Z
; public: long __thiscall DOMAIN_FILL_THREAD::ExitThread(void)
?ExitThread@DOMAIN_FILL_THREAD@@QAEJXZ
; public: long __thiscall FOCUSDLG_DATA_THREAD::ExitThread(void)
?ExitThread@FOCUSDLG_DATA_THREAD@@QAEJXZ
; private: int __thiscall HIER_LISTBOX::ExpandChildren(int,class HIER_LBI *)
?ExpandChildren@HIER_LISTBOX@@AAEHHPAVHIER_LBI@@@Z
; public: long __thiscall LM_OLLB::ExpandDomain(int)
?ExpandDomain@LM_OLLB@@QAEJH@Z
; public: long __thiscall LM_OLLB::ExpandDomain(void)
?ExpandDomain@LM_OLLB@@QAEJXZ
; public: long __thiscall HIER_LISTBOX::ExpandItem(int)
?ExpandItem@HIER_LISTBOX@@QAEJH@Z
; public: long __thiscall HIER_LISTBOX::ExpandItem(class HIER_LBI *)
?ExpandItem@HIER_LISTBOX@@QAEJPAVHIER_LBI@@@Z
; public: int __thiscall DEVICE_CONTEXT::ExtTextOutW(int,int,unsigned int,struct tagRECT const *,class NLS_STR const &,int *)
?ExtTextOutW@DEVICE_CONTEXT@@QAEHHHIPBUtagRECT@@ABVNLS_STR@@PAH@Z
; public: int __thiscall DEVICE_CONTEXT::ExtTextOutW(int,int,unsigned int,struct tagRECT const *,unsigned short const *,int,int *)
?ExtTextOutW@DEVICE_CONTEXT@@QAEHHHIPBUtagRECT@@PBGHPAH@Z
; public: long __thiscall NT_GROUP_BROWSER_LB::Fill(void * const *,unsigned long,class SAM_DOMAIN const *,class LSA_POLICY *,unsigned short const *)
?Fill@NT_GROUP_BROWSER_LB@@QAEJPBQAXKPBVSAM_DOMAIN@@PAVLSA_POLICY@@PBG@Z
; public: long __thiscall OPEN_LBOX_BASE::Fill(void)
?Fill@OPEN_LBOX_BASE@@QAEJXZ
; public: long __thiscall USER_BROWSER_LBI_CACHE::Fill(class ADMIN_AUTHORITY *,unsigned short const *,unsigned long,int,int,int *)
?Fill@USER_BROWSER_LBI_CACHE@@QAEJPAVADMIN_AUTHORITY@@PBGKHHPAH@Z
; public: void __thiscall LM_OLLB::FillAllInfo(class BROWSE_DOMAIN_ENUM *,class SERVER1_ENUM *,unsigned short const *)
?FillAllInfo@LM_OLLB@@QAEXPAVBROWSE_DOMAIN_ENUM@@PAVSERVER1_ENUM@@PBG@Z
; private: void __thiscall MSGPOPUP_DIALOG::FillButtonArray(unsigned int,int *,int *)
?FillButtonArray@MSGPOPUP_DIALOG@@AAEXIPAH0@Z
; private: long __thiscall DEVICE_COMBO::FillDevices(void)
?FillDevices@DEVICE_COMBO@@AAEJXZ
; private: long __thiscall LM_OLLB::FillDomains(unsigned long,unsigned short const *)
?FillDomains@LM_OLLB@@AAEJKPBG@Z
; public: long __thiscall NT_GROUP_BROWSER_LB::FillGlobalGroupMembers(class OS_SID const *,class SAM_DOMAIN const *,class SAM_DOMAIN const *,class LSA_POLICY *,unsigned short const *)
?FillGlobalGroupMembers@NT_GROUP_BROWSER_LB@@QAEJPBVOS_SID@@PBVSAM_DOMAIN@@1PAVLSA_POLICY@@PBG@Z
; public: long __thiscall NT_GROUP_BROWSER_LB::FillLocalGroupMembers(class OS_SID const *,class SAM_DOMAIN const *,class SAM_DOMAIN const *,class LSA_POLICY *,unsigned short const *)
?FillLocalGroupMembers@NT_GROUP_BROWSER_LB@@QAEJPBVOS_SID@@PBVSAM_DOMAIN@@1PAVLSA_POLICY@@PBG@Z
; private: long __thiscall LM_OLLB::FillServers(unsigned short const *,unsigned int *)
?FillServers@LM_OLLB@@AAEJPBGPAI@Z
; protected: virtual int __thiscall DIALOG_WINDOW::FilterMessage(struct tagMSG *)
?FilterMessage@DIALOG_WINDOW@@MAEHPAUtagMSG@@@Z
; protected: virtual int __thiscall HAS_MESSAGE_PUMP::FilterMessage(struct tagMSG *)
?FilterMessage@HAS_MESSAGE_PUMP@@MAEHPAUtagMSG@@@Z
; public: int __thiscall ARRAY_LIST_CONTROLVAL_CID_PAIR::Find(class CONTROLVAL_CID_PAIR const &)const 
?Find@ARRAY_LIST_CONTROLVAL_CID_PAIR@@QBEHABVCONTROLVAL_CID_PAIR@@@Z
; public: static class DIALOG_WINDOW * __stdcall HWND_DLGPTR_CACHE::Find(struct HWND__ *)
?Find@HWND_DLGPTR_CACHE@@SGPAVDIALOG_WINDOW@@PAUHWND__@@@Z
; private: unsigned int __thiscall MAGIC_GROUP::FindAssocRadioButton(class CONTROL_VALUE *)
?FindAssocRadioButton@MAGIC_GROUP@@AAEIPAVCONTROL_VALUE@@@Z
; public: class BROWSER_DOMAIN * __thiscall NT_USER_BROWSER_DIALOG::FindDomain(class OS_SID const *)
?FindDomain@NT_USER_BROWSER_DIALOG@@QAEPAVBROWSER_DOMAIN@@PBVOS_SID@@@Z
; public: class UI_EXT * __thiscall UI_EXT_MGR::FindExtensionByDelta(unsigned long)
?FindExtensionByDelta@UI_EXT_MGR@@QAEPAVUI_EXT@@K@Z
; public: class UI_EXT * __thiscall UI_EXT_MGR::FindExtensionByName(unsigned short const *)
?FindExtensionByName@UI_EXT_MGR@@QAEPAVUI_EXT@@PBG@Z
; public: int __thiscall BLT_LISTBOX::FindItem(class LBI const &)const 
?FindItem@BLT_LISTBOX@@QBEHABVLBI@@@Z
; public: int __thiscall OUTLINE_LISTBOX::FindItem(unsigned short const *,unsigned short const *)const 
?FindItem@OUTLINE_LISTBOX@@QBEHPBG0@Z
; public: int __thiscall STRING_LIST_CONTROL::FindItem(unsigned short const *)const 
?FindItem@STRING_LIST_CONTROL@@QBEHPBG@Z
; public: int __thiscall STRING_LIST_CONTROL::FindItem(unsigned short const *,int)const 
?FindItem@STRING_LIST_CONTROL@@QBEHPBGH@Z
; public: int __thiscall STRING_LIST_CONTROL::FindItemExact(unsigned short const *)const 
?FindItemExact@STRING_LIST_CONTROL@@QBEHPBG@Z
; public: int __thiscall STRING_LIST_CONTROL::FindItemExact(unsigned short const *,int)const 
?FindItemExact@STRING_LIST_CONTROL@@QBEHPBGH@Z
; public: void __thiscall DEVICE_CONTEXT::FrameRect(struct tagRECT const *,struct HBRUSH__ *)const 
?FrameRect@DEVICE_CONTEXT@@QBEXPBUtagRECT@@PAUHBRUSH__@@@Z
; private: virtual long __thiscall SPIN_SLE_STR::GetAccKey(class NLS_STR *)
?GetAccKey@SPIN_SLE_STR@@EAEJPAVNLS_STR@@@Z
; protected: virtual long __thiscall SPIN_SLT_SEPARATOR::GetAccKey(class NLS_STR *)
?GetAccKey@SPIN_SLT_SEPARATOR@@MAEJPAVNLS_STR@@@Z
; private: long __thiscall MSG_DIALOG_BASE::GetAndSendText(void)
?GetAndSendText@MSG_DIALOG_BASE@@AAEJXZ
; public: unsigned long __thiscall DEVICE_CONTEXT::GetBkColor(void)const 
?GetBkColor@DEVICE_CONTEXT@@QBEKXZ
; public: long __thiscall BROWSER_DOMAIN::GetDomainInfo(class NT_USER_BROWSER_DIALOG *,class ADMIN_AUTHORITY const *)
?GetDomainInfo@BROWSER_DOMAIN@@QAEJPAVNT_USER_BROWSER_DIALOG@@PBVADMIN_AUTHORITY@@@Z
; public: long __thiscall UI_DOMAIN::GetInfo(void)
?GetInfo@UI_DOMAIN@@QAEJXZ
; public: long __thiscall APP_WINDOW::GetPlacement(struct tagWINDOWPLACEMENT *)const 
?GetPlacement@APP_WINDOW@@QBEJPAUtagWINDOWPLACEMENT@@@Z
; public: long __thiscall BROWSER_DOMAIN::GetQualifiedDomainName(class NLS_STR *)
?GetQualifiedDomainName@BROWSER_DOMAIN@@QAEJPAVNLS_STR@@@Z
; public: long __thiscall BROWSER_DOMAIN_LBI_PB::GetQualifiedDomainName(class NLS_STR *)
?GetQualifiedDomainName@BROWSER_DOMAIN_LBI_PB@@QAEJPAVNLS_STR@@@Z
; public: unsigned long __thiscall DEVICE_CONTEXT::GetTextColor(void)const 
?GetTextColor@DEVICE_CONTEXT@@QBEKXZ
; private: int __thiscall DISPLAY_MAP::GetTransColorIndex(unsigned long *,int)const 
?GetTransColorIndex@DISPLAY_MAP@@ABEHPAKH@Z
; protected: long __thiscall NT_USER_BROWSER_DIALOG::GetTrustedDomainList(unsigned short const *,class BROWSER_DOMAIN * *,class BROWSER_DOMAIN_CB *,class ADMIN_AUTHORITY const *)
?GetTrustedDomainList@NT_USER_BROWSER_DIALOG@@IAEJPBGPAPAVBROWSER_DOMAIN@@PAVBROWSER_DOMAIN_CB@@PBVADMIN_AUTHORITY@@@Z
; public: int __thiscall SET_CONTROL::HandleOnLMouseButtonDown(class LISTBOX *,class CUSTOM_CONTROL *,class MOUSE_EVENT const &)
?HandleOnLMouseButtonDown@SET_CONTROL@@QAEHPAVLISTBOX@@PAVCUSTOM_CONTROL@@ABVMOUSE_EVENT@@@Z
; public: int __thiscall SET_CONTROL::HandleOnLMouseButtonUp(class LISTBOX *,class CUSTOM_CONTROL *,class MOUSE_EVENT const &)
?HandleOnLMouseButtonUp@SET_CONTROL@@QAEHPAVLISTBOX@@PAVCUSTOM_CONTROL@@ABVMOUSE_EVENT@@@Z
; public: int __thiscall SET_CONTROL::HandleOnMouseMove(class LISTBOX *,class MOUSE_EVENT const &)
?HandleOnMouseMove@SET_CONTROL@@QAEHPAVLISTBOX@@ABVMOUSE_EVENT@@@Z
; public: int __thiscall HIER_LBI::HasChildren(void)
?HasChildren@HIER_LBI@@QAEHXZ
; public: int __thiscall WINDOW::HasFocus(void)const 
?HasFocus@WINDOW@@QBEHXZ
; public: static class DISPATCHER * __stdcall ASSOCHWNDDISP::HwndToPdispatch(struct HWND__ *)
?HwndToPdispatch@ASSOCHWNDDISP@@SGPAVDISPATCHER@@PAUHWND__@@@Z
; public: static class DIALOG_WINDOW * __stdcall ASSOCHWNDPDLG::HwndToPdlg(struct HWND__ *)
?HwndToPdlg@ASSOCHWNDPDLG@@SGPAVDIALOG_WINDOW@@PAUHWND__@@@Z
; public: static class CLIENT_WINDOW * __stdcall ASSOCHWNDPWND::HwndToPwnd(struct HWND__ *)
?HwndToPwnd@ASSOCHWNDPWND@@SGPAVCLIENT_WINDOW@@PAUHWND__@@@Z
; private: static class CLIENT_WINDOW * __stdcall CLIENT_WINDOW::HwndToPwnd(struct HWND__ *)
?HwndToPwnd@CLIENT_WINDOW@@CGPAV1@PAUHWND__@@@Z
; private: static class DIALOG_WINDOW * __stdcall DIALOG_WINDOW::HwndToPwnd(struct HWND__ *)
?HwndToPwnd@DIALOG_WINDOW@@CGPAV1@PAUHWND__@@@Z
; protected: static class DISPATCHER * __stdcall DISPATCHER::HwndToPwnd(struct HWND__ *)
?HwndToPwnd@DISPATCHER@@KGPAV1@PAUHWND__@@@Z
; public: static void * __stdcall ASSOCHWNDTHIS::HwndToThis(struct HWND__ *)
?HwndToThis@ASSOCHWNDTHIS@@SGPAXPAUHWND__@@@Z
; public: int __thiscall BASE_SET_FOCUS_DLG::InRasMode(void)const 
?InRasMode@BASE_SET_FOCUS_DLG@@QBEHXZ
; public: int __thiscall XYPOINT::InRect(class XYRECT const &)const 
?InRect@XYPOINT@@QBEHABVXYRECT@@@Z
; public: virtual void __thiscall CONTROL_WINDOW::IndicateError(long)
?IndicateError@CONTROL_WINDOW@@UAEXJ@Z
; public: virtual void __thiscall SLE::IndicateError(long)
?IndicateError@SLE@@UAEXJ@Z
; public: class XYRECT & __thiscall XYRECT::Inflate(int,int)
?Inflate@XYRECT@@QAEAAV1@HH@Z
; public: class XYRECT & __thiscall XYRECT::Inflate(class XYDIMENSION)
?Inflate@XYRECT@@QAEAAV1@VXYDIMENSION@@@Z
; public: static long __stdcall BASE_ELLIPSIS::Init(void)
?Init@BASE_ELLIPSIS@@SGJXZ
; public: static long __stdcall BLT::Init(struct HINSTANCE__ *,unsigned int,unsigned int,unsigned int,unsigned int)
?Init@BLT@@SGJPAUHINSTANCE__@@IIII@Z
; public: static long __stdcall BLTIMP::Init(void)
?Init@BLTIMP@@SGJXZ
; public: static long __stdcall BLT_MASTER_TIMER::Init(void)
?Init@BLT_MASTER_TIMER@@SGJXZ
; public: static long __stdcall CLIENT_WINDOW::Init(void)
?Init@CLIENT_WINDOW@@SGJXZ
; public: static long __stdcall POPUP::Init(void)
?Init@POPUP@@SGJXZ
; public: long __thiscall SLE_STRLB_GROUP::Init(class STRLIST *)
?Init@SLE_STRLB_GROUP@@QAEJPAVSTRLIST@@@Z
; public: static void __stdcall WIN32_FONT_PICKER::InitCHOOSEFONT(struct tagCHOOSEFONTW *,struct tagLOGFONTW *,struct HWND__ *)
?InitCHOOSEFONT@WIN32_FONT_PICKER@@SGXPAUtagCHOOSEFONTW@@PAUtagLOGFONTW@@PAUHWND__@@@Z
; public: static long __stdcall BLT::InitDLL(void)
?InitDLL@BLT@@SGJXZ
; protected: void __thiscall GET_FNAME_BASE_DLG::InitialOFN(void)
?InitialOFN@GET_FNAME_BASE_DLG@@IAEXXZ
; private: long __thiscall SPIN_SLE_STR::Initialize(long,class OWNER_WINDOW *,unsigned int)
?Initialize@SPIN_SLE_STR@@AAEJJPAVOWNER_WINDOW@@I@Z
; private: long __thiscall SPIN_SLE_STR::Initialize(unsigned short const * * const,class OWNER_WINDOW *,unsigned int)
?Initialize@SPIN_SLE_STR@@AAEJQAPBGPAVOWNER_WINDOW@@I@Z
; private: long __thiscall SPIN_SLT_SEPARATOR::Initialize(void)
?Initialize@SPIN_SLT_SEPARATOR@@AAEJXZ
; public: long __thiscall MENU_BASE::Insert(unsigned short const *,unsigned int,unsigned int,unsigned int)const 
?Insert@MENU_BASE@@QBEJPBGIII@Z
; public: long __thiscall MENU_BASE::Insert(unsigned short const *,unsigned int,struct HMENU__ *,unsigned int)const 
?Insert@MENU_BASE@@QBEJPBGIPAUHMENU__@@I@Z
; public: int __thiscall BLT_LISTBOX::InsertItem(int,class LBI *)
?InsertItem@BLT_LISTBOX@@QAEHHPAVLBI@@@Z
; public: int __thiscall STRING_LIST_CONTROL::InsertItem(int,class NLS_STR const &)
?InsertItem@STRING_LIST_CONTROL@@QAEHHABVNLS_STR@@@Z
; public: int __thiscall STRING_LIST_CONTROL::InsertItem(int,unsigned short const *)
?InsertItem@STRING_LIST_CONTROL@@QAEHHPBG@Z
; protected: int __thiscall LIST_CONTROL::InsertItemData(int,void *)
?InsertItemData@LIST_CONTROL@@IAEHHPAX@Z
; public: long __thiscall NLS_STR::InsertParams(class NLS_STR const &)
?InsertParams@NLS_STR@@QAEJABV1@@Z
; public: long __thiscall MENU_BASE::InsertSeparator(unsigned int,unsigned int)const 
?InsertSeparator@MENU_BASE@@QBEJII@Z
; public: long __thiscall BLT_MASTER_TIMER::InsertTimer(class TIMER_BASE *)
?InsertTimer@BLT_MASTER_TIMER@@QAEJPAVTIMER_BASE@@@Z
; public: void __thiscall WINDOW::Invalidate(class XYRECT const &)
?Invalidate@WINDOW@@QAEXABVXYRECT@@@Z
; public: void __thiscall WINDOW::Invalidate(int)
?Invalidate@WINDOW@@QAEXH@Z
; private: void __thiscall LOGON_HOURS_CONTROL::InvalidateButton(int)
?InvalidateButton@LOGON_HOURS_CONTROL@@AAEXH@Z
; public: void __thiscall LISTBOX::InvalidateItem(int,int)
?InvalidateItem@LISTBOX@@QAEXHH@Z
; private: void __thiscall H_SPLITTER_BAR::InvertDragBar(class XYPOINT const &)
?InvertDragBar@H_SPLITTER_BAR@@AAEXABVXYPOINT@@@Z
; public: void __thiscall DEVICE_CONTEXT::InvertRect(struct tagRECT const *)const 
?InvertRect@DEVICE_CONTEXT@@QBEXPBUtagRECT@@@Z
; public: int __thiscall INTL_PROFILE::Is24Hour(void)const 
?Is24Hour@INTL_PROFILE@@QBEHXZ
; public: int __thiscall ACTIVATION_EVENT::IsActivating(void)const 
?IsActivating@ACTIVATION_EVENT@@QBEHXZ
; public: int __thiscall SPIN_GROUP::IsActive(void)const 
?IsActive@SPIN_GROUP@@QBEHXZ
; public: int __thiscall ASSOCHCFILE::IsAssociatedHC(unsigned long)const 
?IsAssociatedHC@ASSOCHCFILE@@QBEHK@Z
; protected: int __thiscall HEAP_BASE::IsAutoReadjusting(void)const 
?IsAutoReadjusting@HEAP_BASE@@IBEHXZ
; protected: int __thiscall NT_USER_BROWSER_DIALOG::IsBrowsingEnabled(void)const 
?IsBrowsingEnabled@NT_USER_BROWSER_DIALOG@@IBEHXZ
; private: int __thiscall LOGON_HOURS_CONTROL::IsButtonACell(int)const 
?IsButtonACell@LOGON_HOURS_CONTROL@@ABEHH@Z
; public: int __thiscall MENUITEM::IsChecked(void)const 
?IsChecked@MENUITEM@@QBEHXZ
; public: int __thiscall WINDOW::IsChild(void)const 
?IsChild@WINDOW@@QBEHXZ
; public: static int __stdcall WINDOW::IsClientGeneratedMessage(void)
?IsClientGeneratedMessage@WINDOW@@SGHXZ
; public: int __thiscall LIST_CONTROL::IsCombo(void)const 
?IsCombo@LIST_CONTROL@@QBEHXZ
; public: int __thiscall PROMPT_AND_CONNECT::IsConnected(void)
?IsConnected@PROMPT_AND_CONNECT@@QAEHXZ
; private: int __thiscall BLT_DATE_SPIN_GROUP::IsConstructionFail(class CONTROL_WINDOW *)
?IsConstructionFail@BLT_DATE_SPIN_GROUP@@AAEHPAVCONTROL_WINDOW@@@Z
; private: int __thiscall BLT_TIME_SPIN_GROUP::IsConstructionFail(class CONTROL_WINDOW *)
?IsConstructionFail@BLT_TIME_SPIN_GROUP@@AAEHPAVCONTROL_WINDOW@@@Z
; public: int __thiscall INTL_PROFILE::IsDayLZero(void)const 
?IsDayLZero@INTL_PROFILE@@QBEHXZ
; private: virtual int __thiscall HIER_LBI::IsDestroyable(void)
?IsDestroyable@HIER_LBI@@EAEHXZ
; protected: virtual int __thiscall LBI::IsDestroyable(void)
?IsDestroyable@LBI@@MAEHXZ
; protected: int __thiscall NT_USER_BROWSER_DIALOG::IsDomainComboDropped(void)const 
?IsDomainComboDropped@NT_USER_BROWSER_DIALOG@@IBEHXZ
; public: int __thiscall COMBOBOX::IsDropDown(void)const 
?IsDropDown@COMBOBOX@@QBEHXZ
; public: int __thiscall COMBOBOX::IsDropDownList(void)const 
?IsDropDownList@COMBOBOX@@QBEHXZ
; public: int __thiscall BLT_COMBOBOX::IsDropped(void)const 
?IsDropped@BLT_COMBOBOX@@QBEHXZ
; public: int __thiscall XYRECT::IsEmpty(void)const 
?IsEmpty@XYRECT@@QBEHXZ
; public: int __thiscall MENUITEM::IsEnabled(void)const 
?IsEnabled@MENUITEM@@QBEHXZ
; public: int __thiscall TIMER_BASE::IsEnabled(void)const 
?IsEnabled@TIMER_BASE@@QBEHXZ
; public: int __thiscall WINDOW::IsEnabled(void)const 
?IsEnabled@WINDOW@@QBEHXZ
; protected: int __thiscall BASE_SET_FOCUS_DLG::IsExpanded(void)const 
?IsExpanded@BASE_SET_FOCUS_DLG@@IBEHXZ
; public: int __thiscall OLLB_ENTRY::IsExpanded(void)const 
?IsExpanded@OLLB_ENTRY@@QBEHXZ
; public: int __thiscall AUDIT_CHECKBOXES::IsFailedChecked(void)
?IsFailedChecked@AUDIT_CHECKBOXES@@QAEHXZ
; protected: int __thiscall CANCEL_TASK_DIALOG::IsFinished(void)const 
?IsFinished@CANCEL_TASK_DIALOG@@IBEHXZ
; public: int __thiscall GET_FNAME_BASE_DLG::IsHelpActive(void)
?IsHelpActive@GET_FNAME_BASE_DLG@@QAEHXZ
; public: int __thiscall INTL_PROFILE::IsHourLZero(void)const 
?IsHourLZero@INTL_PROFILE@@QBEHXZ
; protected: int __thiscall CANCEL_TASK_DIALOG::IsInTimer(void)const 
?IsInTimer@CANCEL_TASK_DIALOG@@IBEHXZ
; public: int __thiscall BROWSER_DOMAIN::IsInitialized(void)const 
?IsInitialized@BROWSER_DOMAIN@@QBEHXZ
; public: virtual int __thiscall USER_LBI_CACHE::IsItemAvailable(int)
?IsItemAvailable@USER_LBI_CACHE@@UAEHH@Z
; public: int __thiscall LIST_CONTROL::IsItemSelected(unsigned int)const 
?IsItemSelected@LIST_CONTROL@@QBEHI@Z
; public: int __thiscall RADIO_GROUP::IsMember(unsigned int)
?IsMember@RADIO_GROUP@@QAEHI@Z
; public: int __thiscall CLIENT_WINDOW::IsMinimized(void)const 
?IsMinimized@CLIENT_WINDOW@@QBEHXZ
; public: int __thiscall SPIN_GROUP::IsModified(void)const 
?IsModified@SPIN_GROUP@@QBEHXZ
; public: int __thiscall INTL_PROFILE::IsMonthLZero(void)const 
?IsMonthLZero@INTL_PROFILE@@QBEHXZ
; public: int __thiscall LIST_CONTROL::IsMultSel(void)const 
?IsMultSel@LIST_CONTROL@@QBEHXZ
; private: int __thiscall SET_CONTROL::IsOnDragStart(class LISTBOX *,class LISTBOX *,class XYPOINT const &)const 
?IsOnDragStart@SET_CONTROL@@ABEHPAVLISTBOX@@0ABVXYPOINT@@@Z
; private: int __thiscall SET_CONTROL::IsOnSelectedItem(class LISTBOX *,class LISTBOX *,class XYPOINT const &)const 
?IsOnSelectedItem@SET_CONTROL@@ABEHPAVLISTBOX@@0ABVXYPOINT@@@Z
; private: int __thiscall SET_CONTROL::IsOverTarget(class LISTBOX *,class LISTBOX *,class XYPOINT const &)const 
?IsOverTarget@SET_CONTROL@@ABEHPAVLISTBOX@@0ABVXYPOINT@@@Z
; private: int __thiscall HIER_LBI::IsParent(class HIER_LBI *)
?IsParent@HIER_LBI@@AAEHPAV1@@Z
; public: int __thiscall MENU_BASE::IsPopup(int)const 
?IsPopup@MENU_BASE@@QBEHH@Z
; public: int __thiscall MASK_MAP::IsPresent(class BITFIELD *)
?IsPresent@MASK_MAP@@QAEHPAVBITFIELD@@@Z
; protected: virtual int __thiscall DIALOG_WINDOW::IsPumpFinished(void)
?IsPumpFinished@DIALOG_WINDOW@@MAEHXZ
; protected: virtual int __thiscall HAS_MESSAGE_PUMP::IsPumpFinished(void)
?IsPumpFinished@HAS_MESSAGE_PUMP@@MAEHXZ
; public: int __thiscall LISTBOX::IsReadOnly(void)const 
?IsReadOnly@LISTBOX@@QBEHXZ
; protected: int __thiscall HEAP_BASE::IsRoot(int)const 
?IsRoot@HEAP_BASE@@IBEHH@Z
; public: int __thiscall WIN32_THREAD::IsRunnable(void)const 
?IsRunnable@WIN32_THREAD@@QBEHXZ
; protected: int __thiscall USER_BROWSER_LB::IsSelectionExpandableGroup(class USER_BROWSER_LBI const *,int)const 
?IsSelectionExpandableGroup@USER_BROWSER_LB@@IBEHPBVUSER_BROWSER_LBI@@H@Z
; public: int __thiscall USER_BROWSER_LB::IsSelectionExpandableGroup(void)const 
?IsSelectionExpandableGroup@USER_BROWSER_LB@@QBEHXZ
; public: int __thiscall MENU_BASE::IsSeparator(int)const 
?IsSeparator@MENU_BASE@@QBEHH@Z
; protected: int __thiscall NT_USER_BROWSER_DIALOG::IsShowUsersButtonUsed(void)const 
?IsShowUsersButtonUsed@NT_USER_BROWSER_DIALOG@@IBEHXZ
; public: int __thiscall COMBOBOX::IsSimple(void)const 
?IsSimple@COMBOBOX@@QBEHXZ
; public: int __thiscall ACCOUNT_NAMES_MLE::IsSingleSelect(void)const 
?IsSingleSelect@ACCOUNT_NAMES_MLE@@QBEHXZ
; public: int __thiscall NT_USER_BROWSER_DIALOG::IsSingleSelection(void)const 
?IsSingleSelection@NT_USER_BROWSER_DIALOG@@QBEHXZ
; public: virtual int __thiscall CHANGEABLE_SPIN_ITEM::IsStatic(void)const 
?IsStatic@CHANGEABLE_SPIN_ITEM@@UBEHXZ
; public: virtual int __thiscall STATIC_SPIN_ITEM::IsStatic(void)const 
?IsStatic@STATIC_SPIN_ITEM@@UBEHXZ
; public: int __thiscall AUDIT_CHECKBOXES::IsSuccessChecked(void)
?IsSuccessChecked@AUDIT_CHECKBOXES@@QAEHXZ
; public: static int __stdcall APPLICATION::IsSystemInitialized(void)
?IsSystemInitialized@APPLICATION@@SGHXZ
; public: int __thiscall BROWSER_DOMAIN::IsTargetDomain(void)const 
?IsTargetDomain@BROWSER_DOMAIN@@QBEHXZ
; public: int __thiscall BROWSER_DOMAIN_LBI::IsTargetDomain(void)const 
?IsTargetDomain@BROWSER_DOMAIN_LBI@@QBEHXZ
; public: int __thiscall BROWSER_DOMAIN_LBI_PB::IsTargetDomain(void)const 
?IsTargetDomain@BROWSER_DOMAIN_LBI_PB@@QBEHXZ
; public: int __thiscall INTL_PROFILE::IsTimePrefix(void)const 
?IsTimePrefix@INTL_PROFILE@@QBEHXZ
; public: int __thiscall COMBOBOX::IsUserEdittable(void)const 
?IsUserEdittable@COMBOBOX@@QBEHXZ
; public: int __thiscall BLT_DATE_SPIN_GROUP::IsValid(void)
?IsValid@BLT_DATE_SPIN_GROUP@@QAEHXZ
; public: int __thiscall BLT_TIME_SPIN_GROUP::IsValid(void)
?IsValid@BLT_TIME_SPIN_GROUP@@QAEHXZ
; protected: virtual int __thiscall DIALOG_WINDOW::IsValid(void)
?IsValid@DIALOG_WINDOW@@MAEHXZ
; protected: virtual int __thiscall SPIN_SLE_NUM_VALID::IsValid(void)
?IsValid@SPIN_SLE_NUM_VALID@@MAEHXZ
; protected: int __thiscall SPIN_GROUP::IsValidField(void)
?IsValidField@SPIN_GROUP@@IAEHXZ
; protected: int __thiscall BASE_ELLIPSIS::IsValidStyle(enum ELLIPSIS_STYLE)const 
?IsValidStyle@BASE_ELLIPSIS@@IBEHW4ELLIPSIS_STYLE@@@Z
; protected: int __thiscall ACCOUNT_NAMES_MLE::IsWellKnownAccount(class NLS_STR const &)
?IsWellKnownAccount@ACCOUNT_NAMES_MLE@@IAEHABVNLS_STR@@@Z
; public: int __thiscall BROWSER_DOMAIN::IsWinNTMachine(void)const 
?IsWinNTMachine@BROWSER_DOMAIN@@QBEHXZ
; protected: int __thiscall H_SPLITTER_BAR::IsWithinHitZone(class XYPOINT const &)
?IsWithinHitZone@H_SPLITTER_BAR@@IAEHABVXYPOINT@@@Z
; private: int __thiscall SET_CONTROL::IsWithinHitZone(class LISTBOX *,class LISTBOX *,class XYPOINT const &)const 
?IsWithinHitZone@SET_CONTROL@@ABEHPAVLISTBOX@@0ABVXYPOINT@@@Z
; public: int __thiscall INTL_PROFILE::IsYrCentury(void)const 
?IsYrCentury@INTL_PROFILE@@QBEHXZ
; public: static int __stdcall MENUITEM::ItemExists(struct HMENU__ *,unsigned int)
?ItemExists@MENUITEM@@SGHPAUHMENU__@@I@Z
; public: static int __stdcall MENUITEM::ItemExists(class APP_WINDOW *,unsigned int)
?ItemExists@MENUITEM@@SGHPAVAPP_WINDOW@@I@Z
; public: int __thiscall SPIN_GROUP::JumpNextField(void)
?JumpNextField@SPIN_GROUP@@QAEHXZ
; public: int __thiscall SPIN_GROUP::JumpPrevField(void)
?JumpPrevField@SPIN_GROUP@@QAEHXZ
; private: void __thiscall DIALOG_WINDOW::LaunchHelp(void)
?LaunchHelp@DIALOG_WINDOW@@AAEXXZ
; public: static void __stdcall BLTIMP::LeaveBLTCritSect(void)
?LeaveBLTCritSect@BLTIMP@@SGXXZ
; public: static void __stdcall BLTIMP::LeaveResourceCritSect(void)
?LeaveResourceCritSect@BLTIMP@@SGXXZ
; public: void __thiscall DEVICE_CONTEXT::LineTo(int,int)const 
?LineTo@DEVICE_CONTEXT@@QBEXHH@Z
; public: static struct HICON__ * __stdcall CURSOR::Load(class IDRESOURCE const &)
?Load@CURSOR@@SGPAUHICON__@@ABVIDRESOURCE@@@Z
; public: long __thiscall NLS_STR::Load(long)
?Load@NLS_STR@@QAEJJ@Z
; public: virtual unsigned int __thiscall UI_EXT_MGR::LoadExtensions(void)
?LoadExtensions@UI_EXT_MGR@@UAEIXZ
; private: long __thiscall LOGON_HOURS_CONTROL::LoadLabels(long)
?LoadLabels@LOGON_HOURS_CONTROL@@AAEJJ@Z
; private: class NLS_STR * __thiscall POPUP::LoadMessage(long,int)
?LoadMessage@POPUP@@AAEPAVNLS_STR@@JH@Z
; public: static struct HICON__ * __stdcall CURSOR::LoadSystem(class IDRESOURCE const &)
?LoadSystem@CURSOR@@SGPAUHICON__@@ABVIDRESOURCE@@@Z
; public: long __thiscall NLS_STR::LoadSystem(long)
?LoadSystem@NLS_STR@@QAEJJ@Z
; protected: virtual void __thiscall USER_LBI_CACHE::LockCache(void)
?LockCache@USER_LBI_CACHE@@MAEXXZ
; void __stdcall MLTextPaint(struct HDC__ *,unsigned short const *,struct tagRECT const *)
?MLTextPaint@@YGXPAUHDC__@@PBGPBUtagRECT@@@Z
; protected: virtual long __thiscall DOMAIN_FILL_THREAD::Main(void)
?Main@DOMAIN_FILL_THREAD@@MAEJXZ
; protected: virtual long __thiscall FOCUSDLG_DATA_THREAD::Main(void)
?Main@FOCUSDLG_DATA_THREAD@@MAEJXZ
; protected: virtual long __thiscall WIN32_THREAD::Main(void)
?Main@WIN32_THREAD@@MAEJXZ
; public: void __thiscall PUSH_BUTTON::MakeDefault(void)
?MakeDefault@PUSH_BUTTON@@QAEXXZ
; private: static int __stdcall POPUP::MapButton(unsigned int)
?MapButton@POPUP@@CGHI@Z
; public: static long __stdcall BLT::MapLastError(long)
?MapLastError@BLT@@SGJJ@Z
; public: static long __stdcall POPUP::MapMessage(long)
?MapMessage@POPUP@@SGJJ@Z
; protected: virtual int __thiscall APP_WINDOW::MayRestore(void)
?MayRestore@APP_WINDOW@@MAEHXZ
; protected: virtual int __thiscall CANCEL_TASK_DIALOG::MayRun(void)
?MayRun@CANCEL_TASK_DIALOG@@MAEHXZ
; protected: virtual int __thiscall DIALOG_WINDOW::MayRun(void)
?MayRun@DIALOG_WINDOW@@MAEHXZ
; protected: virtual int __thiscall APP_WINDOW::MayShutdown(void)
?MayShutdown@APP_WINDOW@@MAEHXZ
; public: virtual void __thiscall UI_MENU_EXT_MGR::MenuInitExtensions(void)
?MenuInitExtensions@UI_MENU_EXT_MGR@@UAEXXZ
; public: long __thiscall MENU_BASE::Modify(unsigned short const *,unsigned int,unsigned int,unsigned int)const 
?Modify@MENU_BASE@@QBEJPBGIII@Z
; public: long __thiscall MENU_BASE::Modify(unsigned short const *,unsigned int,struct HMENU__ *,unsigned int)const 
?Modify@MENU_BASE@@QBEJPBGIPAUHMENU__@@I@Z
; private: void __thiscall LOGON_HOURS_CONTROL::MoveFocusDown(void)
?MoveFocusDown@LOGON_HOURS_CONTROL@@AAEXXZ
; private: void __thiscall LOGON_HOURS_CONTROL::MoveFocusLeft(void)
?MoveFocusLeft@LOGON_HOURS_CONTROL@@AAEXXZ
; private: void __thiscall LOGON_HOURS_CONTROL::MoveFocusRight(void)
?MoveFocusRight@LOGON_HOURS_CONTROL@@AAEXXZ
; private: void __thiscall LOGON_HOURS_CONTROL::MoveFocusTo(int)
?MoveFocusTo@LOGON_HOURS_CONTROL@@AAEXH@Z
; private: void __thiscall LOGON_HOURS_CONTROL::MoveFocusUp(void)
?MoveFocusUp@LOGON_HOURS_CONTROL@@AAEXXZ
; protected: virtual long __thiscall BLT_SET_CONTROL::MoveItems(class LISTBOX *,class LISTBOX *)
?MoveItems@BLT_SET_CONTROL@@MAEJPAVLISTBOX@@0@Z
; public: void __thiscall DEVICE_CONTEXT::MoveTo(int,int)const 
?MoveTo@DEVICE_CONTEXT@@QBEXHH@Z
; private: static int __stdcall MSGPOPUP_DIALOG::Msg2HC(long,unsigned long *)
?Msg2HC@MSGPOPUP_DIALOG@@CGHJPAK@Z
; int __stdcall MsgPopup(class OWNINGWND const &,long,long,enum MSG_SEVERITY,unsigned long,unsigned int,class NLS_STR * * const,unsigned int)
?MsgPopup@@YGHABVOWNINGWND@@JJW4MSG_SEVERITY@@KIQAPAVNLS_STR@@I@Z
; int __stdcall MsgPopup(class OWNINGWND const &,long,enum MSG_SEVERITY)
?MsgPopup@@YGHABVOWNINGWND@@JW4MSG_SEVERITY@@@Z
; int __stdcall MsgPopup(class OWNINGWND const &,long,enum MSG_SEVERITY,unsigned int,unsigned int)
?MsgPopup@@YGHABVOWNINGWND@@JW4MSG_SEVERITY@@II@Z
; int __stdcall MsgPopup(class OWNINGWND const &,long,enum MSG_SEVERITY,unsigned int,unsigned short const *,unsigned short const *,unsigned int)
?MsgPopup@@YGHABVOWNINGWND@@JW4MSG_SEVERITY@@IPBG2I@Z
; int __stdcall MsgPopup(class OWNINGWND const &,long,enum MSG_SEVERITY,unsigned int,unsigned short const *,unsigned int)
?MsgPopup@@YGHABVOWNINGWND@@JW4MSG_SEVERITY@@IPBGI@Z
; int __stdcall MsgPopup(class OWNINGWND const &,long,enum MSG_SEVERITY,unsigned long,unsigned int,class NLS_STR * * const,unsigned int)
?MsgPopup@@YGHABVOWNINGWND@@JW4MSG_SEVERITY@@KIQAPAVNLS_STR@@I@Z
; public: long __thiscall BROWSER_SUBJECT_ITER::Next(class BROWSER_SUBJECT * *)
?Next@BROWSER_SUBJECT_ITER@@QAEJPAPAVBROWSER_SUBJECT@@@Z
; public: class BROWSE_DOMAIN_INFO const * __thiscall BROWSE_DOMAIN_ENUM::Next(void)
?Next@BROWSE_DOMAIN_ENUM@@QAEPBVBROWSE_DOMAIN_INFO@@XZ
; public: class CONTROL_WINDOW * __thiscall ITER_CTRL::Next(void)
?Next@ITER_CTRL@@QAEPAVCONTROL_WINDOW@@XZ
; public: class SPIN_ITEM * __thiscall ITER_DL_SPIN_ITEM::Next(void)
?Next@ITER_DL_SPIN_ITEM@@QAEPAVSPIN_ITEM@@XZ
; public: class ASSOCHCFILE * __thiscall ITER_SL_ASSOCHCFILE::Next(void)
?Next@ITER_SL_ASSOCHCFILE@@QAEPAVASSOCHCFILE@@XZ
; public: class BROWSE_DOMAIN_INFO * __thiscall ITER_SL_BROWSE_DOMAIN_INFO::Next(void)
?Next@ITER_SL_BROWSE_DOMAIN_INFO@@QAEPAVBROWSE_DOMAIN_INFO@@XZ
; public: struct CLIENTDATA * __thiscall ITER_SL_CLIENTDATA::Next(void)
?Next@ITER_SL_CLIENTDATA@@QAEPAUCLIENTDATA@@XZ
; public: class NLS_STR * __thiscall ITER_SL_NLS_STR::Next(void)
?Next@ITER_SL_NLS_STR@@QAEPAVNLS_STR@@XZ
; public: class STRING_BITSET_PAIR * __thiscall ITER_SL_STRING_BITSET_PAIR::Next(void)
?Next@ITER_SL_STRING_BITSET_PAIR@@QAEPAVSTRING_BITSET_PAIR@@XZ
; public: class TIMER_BASE * __thiscall ITER_SL_TIMER_BASE::Next(void)
?Next@ITER_SL_TIMER_BASE@@QAEPAVTIMER_BASE@@XZ
; public: class UI_EXT * __thiscall ITER_SL_UI_EXT::Next(void)
?Next@ITER_SL_UI_EXT@@QAEPAVUI_EXT@@XZ
; public: class USER_BROWSER_LBI * __thiscall ITER_SL_USER_BROWSER_LBI::Next(void)
?Next@ITER_SL_USER_BROWSER_LBI@@QAEPAVUSER_BROWSER_LBI@@XZ
; public: class SPIN_ITEM * __thiscall RITER_DL_SPIN_ITEM::Next(void)
?Next@RITER_DL_SPIN_ITEM@@QAEPAVSPIN_ITEM@@XZ
; public: int __thiscall STLBITEM::NextState(void)
?NextState@STLBITEM@@QAEHXZ
; public: class TIMER_BASE * __thiscall BLT_MASTER_TIMER::NextTimer(void)
?NextTimer@BLT_MASTER_TIMER@@QAEPAVTIMER_BASE@@XZ
; public: long __thiscall CONTROL_WINDOW::NotifyGroups(class CONTROL_EVENT const &)
?NotifyGroups@CONTROL_WINDOW@@QAEJABVCONTROL_EVENT@@@Z
; public: class XYRECT & __thiscall XYRECT::Offset(int,int)
?Offset@XYRECT@@QAEAAV1@HH@Z
; public: class XYRECT & __thiscall XYRECT::Offset(class XYDIMENSION)
?Offset@XYRECT@@QAEAAV1@VXYDIMENSION@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnActivation(class ACTIVATION_EVENT const &)
?OnActivation@CLIENT_WINDOW@@MAEHABVACTIVATION_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnActivation(class ACTIVATION_EVENT const &)
?OnActivation@DISPATCHER@@MAEHABVACTIVATION_EVENT@@@Z
; protected: long __thiscall NT_USER_BROWSER_DIALOG::OnAdd(void)
?OnAdd@NT_USER_BROWSER_DIALOG@@IAEJXZ
; protected: long __thiscall SLE_STRLB_GROUP::OnAdd(void)
?OnAdd@SLE_STRLB_GROUP@@IAEJXZ
; protected: int __thiscall OWNER_WINDOW::OnCDMessages(unsigned int,unsigned int,long)
?OnCDMessages@OWNER_WINDOW@@IAEHIIJ@Z
; protected: virtual int __thiscall DIALOG_WINDOW::OnCancel(void)
?OnCancel@DIALOG_WINDOW@@MAEHXZ
; protected: virtual int __thiscall MSGPOPUP_DIALOG::OnCancel(void)
?OnCancel@MSGPOPUP_DIALOG@@MAEHXZ
; protected: virtual int __thiscall CLIENT_WINDOW::OnChange(class CONTROL_EVENT const &)
?OnChange@CLIENT_WINDOW@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnChar(class CHAR_EVENT const &)
?OnChar@CLIENT_WINDOW@@MAEHABVCHAR_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnChar(class CHAR_EVENT const &)
?OnChar@DISPATCHER@@MAEHABVCHAR_EVENT@@@Z
; protected: virtual int __thiscall SPIN_ITEM::OnChar(class CHAR_EVENT const &)
?OnChar@SPIN_ITEM@@MAEHABVCHAR_EVENT@@@Z
; protected: virtual int __thiscall SPIN_SLE_NUM::OnChar(class CHAR_EVENT const &)
?OnChar@SPIN_SLE_NUM@@MAEHABVCHAR_EVENT@@@Z
; protected: virtual int __thiscall SPIN_SLE_STR::OnChar(class CHAR_EVENT const &)
?OnChar@SPIN_SLE_STR@@MAEHABVCHAR_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnClick(class CONTROL_EVENT const &)
?OnClick@CLIENT_WINDOW@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall APP_WINDOW::OnCloseReq(void)
?OnCloseReq@APP_WINDOW@@MAEHXZ
; protected: virtual int __thiscall CLIENT_WINDOW::OnCloseReq(void)
?OnCloseReq@CLIENT_WINDOW@@MAEHXZ
; protected: virtual int __thiscall DISPATCHER::OnCloseReq(void)
?OnCloseReq@DISPATCHER@@MAEHXZ
; protected: virtual int __thiscall BASE_SET_FOCUS_DLG::OnCommand(class CONTROL_EVENT const &)
?OnCommand@BASE_SET_FOCUS_DLG@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnCommand(class CONTROL_EVENT const &)
?OnCommand@CLIENT_WINDOW@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall DIALOG_WINDOW::OnCommand(class CONTROL_EVENT const &)
?OnCommand@DIALOG_WINDOW@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnCommand(class CONTROL_EVENT const &)
?OnCommand@DISPATCHER@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall EXPANDABLE_DIALOG::OnCommand(class CONTROL_EVENT const &)
?OnCommand@EXPANDABLE_DIALOG@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall MSGPOPUP_DIALOG::OnCommand(class CONTROL_EVENT const &)
?OnCommand@MSGPOPUP_DIALOG@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall NT_FIND_ACCOUNT_DIALOG::OnCommand(class CONTROL_EVENT const &)
?OnCommand@NT_FIND_ACCOUNT_DIALOG@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall NT_GROUP_BROWSER_DIALOG::OnCommand(class CONTROL_EVENT const &)
?OnCommand@NT_GROUP_BROWSER_DIALOG@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall NT_LOCALGROUP_BROWSER_DIALOG::OnCommand(class CONTROL_EVENT const &)
?OnCommand@NT_LOCALGROUP_BROWSER_DIALOG@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall NT_USER_BROWSER_DIALOG::OnCommand(class CONTROL_EVENT const &)
?OnCommand@NT_USER_BROWSER_DIALOG@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall OPEN_DIALOG_BASE::OnCommand(class CONTROL_EVENT const &)
?OnCommand@OPEN_DIALOG_BASE@@MAEHABVCONTROL_EVENT@@@Z
; public: static int __stdcall LBI::OnCompareItem(unsigned int,long)
?OnCompareItem@LBI@@SGHIJ@Z
; protected: virtual void __thiscall DIALOG_WINDOW::OnControlError(unsigned int,long)
?OnControlError@DIALOG_WINDOW@@MAEXIJ@Z
; public: virtual struct HBRUSH__ * __thiscall BLT_BACKGROUND_EDIT::OnCtlColor(struct HDC__ *,struct HWND__ *,unsigned int *)
?OnCtlColor@BLT_BACKGROUND_EDIT@@UAEPAUHBRUSH__@@PAUHDC__@@PAUHWND__@@PAI@Z
; public: virtual struct HBRUSH__ * __thiscall CONTROL_WINDOW::OnCtlColor(struct HDC__ *,struct HWND__ *,unsigned int *)
?OnCtlColor@CONTROL_WINDOW@@UAEPAUHBRUSH__@@PAUHDC__@@PAUHWND__@@PAI@Z
; protected: virtual struct HBRUSH__ * __thiscall DIALOG_WINDOW::OnCtlColor(struct HDC__ *,struct HWND__ *,unsigned int *)
?OnCtlColor@DIALOG_WINDOW@@MAEPAUHBRUSH__@@PAUHDC__@@PAUHWND__@@PAI@Z
; public: virtual struct HBRUSH__ * __thiscall SPIN_SLT_SEPARATOR::OnCtlColor(struct HDC__ *,struct HWND__ *,unsigned int *)
?OnCtlColor@SPIN_SLT_SEPARATOR@@UAEPAUHBRUSH__@@PAUHDC__@@PAUHWND__@@PAI@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnDblClick(class CONTROL_EVENT const &)
?OnDblClick@CLIENT_WINDOW@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnDeactivation(class ACTIVATION_EVENT const &)
?OnDeactivation@CLIENT_WINDOW@@MAEHABVACTIVATION_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnDeactivation(class ACTIVATION_EVENT const &)
?OnDeactivation@DISPATCHER@@MAEHABVACTIVATION_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnDefocus(class FOCUS_EVENT const &)
?OnDefocus@CLIENT_WINDOW@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnDefocus(class FOCUS_EVENT const &)
?OnDefocus@DISPATCHER@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall FOCUS_CHECKBOX::OnDefocus(class FOCUS_EVENT const &)
?OnDefocus@FOCUS_CHECKBOX@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall LOGON_HOURS_CONTROL::OnDefocus(class FOCUS_EVENT const &)
?OnDefocus@LOGON_HOURS_CONTROL@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall SPIN_SLE_NUM::OnDefocus(class FOCUS_EVENT const &)
?OnDefocus@SPIN_SLE_NUM@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall SPIN_SLE_NUM_VALID::OnDefocus(class FOCUS_EVENT const &)
?OnDefocus@SPIN_SLE_NUM_VALID@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual void __thiscall LAZY_LISTBOX::OnDeleteItem(class LBI *)
?OnDeleteItem@LAZY_LISTBOX@@MAEXPAVLBI@@@Z
; public: static void __stdcall LBI::OnDeleteItem(unsigned int,long)
?OnDeleteItem@LBI@@SGXIJ@Z
; protected: virtual void __thiscall USER_BROWSER_LB::OnDeleteItem(class LBI *)
?OnDeleteItem@USER_BROWSER_LB@@MAEXPAVLBI@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnDestroy(void)
?OnDestroy@CLIENT_WINDOW@@MAEHXZ
; protected: virtual int __thiscall DISPATCHER::OnDestroy(void)
?OnDestroy@DISPATCHER@@MAEHXZ
; protected: virtual int __thiscall DIALOG_WINDOW::OnDlgActivation(class ACTIVATION_EVENT const &)
?OnDlgActivation@DIALOG_WINDOW@@MAEHABVACTIVATION_EVENT@@@Z
; protected: virtual int __thiscall DIALOG_WINDOW::OnDlgDeactivation(class ACTIVATION_EVENT const &)
?OnDlgDeactivation@DIALOG_WINDOW@@MAEHABVACTIVATION_EVENT@@@Z
; protected: virtual int __thiscall NT_USER_BROWSER_DIALOG::OnDlgDeactivation(class ACTIVATION_EVENT const &)
?OnDlgDeactivation@NT_USER_BROWSER_DIALOG@@MAEHABVACTIVATION_EVENT@@@Z
; protected: long __thiscall NT_USER_BROWSER_DIALOG::OnDomainChange(class BROWSER_DOMAIN *,class ADMIN_AUTHORITY const *)
?OnDomainChange@NT_USER_BROWSER_DIALOG@@IAEJPAVBROWSER_DOMAIN@@PBVADMIN_AUTHORITY@@@Z
; private: void __thiscall BASE_SET_FOCUS_DLG::OnDomainLBChange(void)
?OnDomainLBChange@BASE_SET_FOCUS_DLG@@AAEXXZ
; public: void __thiscall HIER_LISTBOX::OnDoubleClick(class HIER_LBI *)
?OnDoubleClick@HIER_LISTBOX@@QAEXPAVHIER_LBI@@@Z
; protected: virtual void __thiscall H_SPLITTER_BAR::OnDragRelease(class XYPOINT const &)
?OnDragRelease@H_SPLITTER_BAR@@MAEXABVXYPOINT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnDropDown(class CONTROL_EVENT const &)
?OnDropDown@CLIENT_WINDOW@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnEnter(class CONTROL_EVENT const &)
?OnEnter@CLIENT_WINDOW@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall SPIN_SLE_NUM::OnEnter(class CONTROL_EVENT const &)
?OnEnter@SPIN_SLE_NUM@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall SPIN_SLE_NUM_VALID::OnEnter(class CONTROL_EVENT const &)
?OnEnter@SPIN_SLE_NUM_VALID@@MAEHABVCONTROL_EVENT@@@Z
; protected: virtual void __thiscall EXPANDABLE_DIALOG::OnExpand(void)
?OnExpand@EXPANDABLE_DIALOG@@MAEXXZ
; protected: virtual int __thiscall CLIENT_WINDOW::OnFocus(class FOCUS_EVENT const &)
?OnFocus@CLIENT_WINDOW@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnFocus(class FOCUS_EVENT const &)
?OnFocus@DISPATCHER@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall FOCUS_CHECKBOX::OnFocus(class FOCUS_EVENT const &)
?OnFocus@FOCUS_CHECKBOX@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall LOGON_HOURS_CONTROL::OnFocus(class FOCUS_EVENT const &)
?OnFocus@LOGON_HOURS_CONTROL@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall SPIN_ITEM::OnFocus(class FOCUS_EVENT const &)
?OnFocus@SPIN_ITEM@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall SPIN_SLE_NUM::OnFocus(class FOCUS_EVENT const &)
?OnFocus@SPIN_SLE_NUM@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall SPIN_SLE_STR::OnFocus(class FOCUS_EVENT const &)
?OnFocus@SPIN_SLE_STR@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual int __thiscall STATIC_SPIN_ITEM::OnFocus(class FOCUS_EVENT const &)
?OnFocus@STATIC_SPIN_ITEM@@MAEHABVFOCUS_EVENT@@@Z
; protected: virtual long __thiscall CONTROL_GROUP::OnGroupAction(class CONTROL_GROUP *)
?OnGroupAction@CONTROL_GROUP@@MAEJPAV1@@Z
; protected: virtual long __thiscall MAGIC_GROUP::OnGroupAction(class CONTROL_GROUP *)
?OnGroupAction@MAGIC_GROUP@@MAEJPAVCONTROL_GROUP@@@Z
; private: int __thiscall DIALOG_WINDOW::OnHelp(void)
?OnHelp@DIALOG_WINDOW@@AAEHXZ
; public: void __thiscall GET_FNAME_BASE_DLG::OnHelp(struct HWND__ *)
?OnHelp@GET_FNAME_BASE_DLG@@QAEXPAUHWND__@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnKeyDown(class VKEY_EVENT const &)
?OnKeyDown@CLIENT_WINDOW@@MAEHABVVKEY_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnKeyDown(class VKEY_EVENT const &)
?OnKeyDown@DISPATCHER@@MAEHABVVKEY_EVENT@@@Z
; protected: virtual int __thiscall LOGON_HOURS_CONTROL::OnKeyDown(class VKEY_EVENT const &)
?OnKeyDown@LOGON_HOURS_CONTROL@@MAEHABVVKEY_EVENT@@@Z
; protected: virtual int __thiscall SPIN_SLE_NUM::OnKeyDown(class VKEY_EVENT const &)
?OnKeyDown@SPIN_SLE_NUM@@MAEHABVVKEY_EVENT@@@Z
; protected: virtual int __thiscall SPIN_SLE_STR::OnKeyDown(class VKEY_EVENT const &)
?OnKeyDown@SPIN_SLE_STR@@MAEHABVVKEY_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnKeyUp(class VKEY_EVENT const &)
?OnKeyUp@CLIENT_WINDOW@@MAEHABVVKEY_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnKeyUp(class VKEY_EVENT const &)
?OnKeyUp@DISPATCHER@@MAEHABVVKEY_EVENT@@@Z
; protected: virtual int __thiscall LOGON_HOURS_CONTROL::OnKeyUp(class VKEY_EVENT const &)
?OnKeyUp@LOGON_HOURS_CONTROL@@MAEHABVVKEY_EVENT@@@Z
; protected: static int __stdcall OWNER_WINDOW::OnLBIMessages(unsigned int,unsigned int,long)
?OnLBIMessages@OWNER_WINDOW@@KGHIIJ@Z
; protected: virtual int __thiscall ARROW_BUTTON::OnLMouseButtonDblClick(class MOUSE_EVENT const &)
?OnLMouseButtonDblClick@ARROW_BUTTON@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnLMouseButtonDblClick(class MOUSE_EVENT const &)
?OnLMouseButtonDblClick@CLIENT_WINDOW@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnLMouseButtonDblClick(class MOUSE_EVENT const &)
?OnLMouseButtonDblClick@DISPATCHER@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall ARROW_BUTTON::OnLMouseButtonDown(class MOUSE_EVENT const &)
?OnLMouseButtonDown@ARROW_BUTTON@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnLMouseButtonDown(class MOUSE_EVENT const &)
?OnLMouseButtonDown@CLIENT_WINDOW@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnLMouseButtonDown(class MOUSE_EVENT const &)
?OnLMouseButtonDown@DISPATCHER@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall H_SPLITTER_BAR::OnLMouseButtonDown(class MOUSE_EVENT const &)
?OnLMouseButtonDown@H_SPLITTER_BAR@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall LOGON_HOURS_CONTROL::OnLMouseButtonDown(class MOUSE_EVENT const &)
?OnLMouseButtonDown@LOGON_HOURS_CONTROL@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall ARROW_BUTTON::OnLMouseButtonUp(class MOUSE_EVENT const &)
?OnLMouseButtonUp@ARROW_BUTTON@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnLMouseButtonUp(class MOUSE_EVENT const &)
?OnLMouseButtonUp@CLIENT_WINDOW@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnLMouseButtonUp(class MOUSE_EVENT const &)
?OnLMouseButtonUp@DISPATCHER@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall H_SPLITTER_BAR::OnLMouseButtonUp(class MOUSE_EVENT const &)
?OnLMouseButtonUp@H_SPLITTER_BAR@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall LOGON_HOURS_CONTROL::OnLMouseButtonUp(class MOUSE_EVENT const &)
?OnLMouseButtonUp@LOGON_HOURS_CONTROL@@MAEHABVMOUSE_EVENT@@@Z
; protected: long __thiscall NT_LOCALGROUP_BROWSER_DIALOG::OnMembers(void)
?OnMembers@NT_LOCALGROUP_BROWSER_DIALOG@@IAEJXZ
; protected: long __thiscall NT_USER_BROWSER_DIALOG::OnMembers(void)
?OnMembers@NT_USER_BROWSER_DIALOG@@IAEJXZ
; protected: virtual int __thiscall APP_WINDOW::OnMenuCommand(unsigned int)
?OnMenuCommand@APP_WINDOW@@MAEHI@Z
; protected: virtual int __thiscall APP_WINDOW::OnMenuInit(class MENU_EVENT const &)
?OnMenuInit@APP_WINDOW@@MAEHABVMENU_EVENT@@@Z
; protected: virtual int __thiscall APP_WINDOW::OnMenuSelect(class MENUITEM_EVENT const &)
?OnMenuSelect@APP_WINDOW@@MAEHABVMENUITEM_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnMouseMove(class MOUSE_EVENT const &)
?OnMouseMove@CLIENT_WINDOW@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnMouseMove(class MOUSE_EVENT const &)
?OnMouseMove@DISPATCHER@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall H_SPLITTER_BAR::OnMouseMove(class MOUSE_EVENT const &)
?OnMouseMove@H_SPLITTER_BAR@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall LOGON_HOURS_CONTROL::OnMouseMove(class MOUSE_EVENT const &)
?OnMouseMove@LOGON_HOURS_CONTROL@@MAEHABVMOUSE_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnMove(class MOVE_EVENT const &)
?OnMove@CLIENT_WINDOW@@MAEHABVMOVE_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnMove(class MOVE_EVENT const &)
?OnMove@DISPATCHER@@MAEHABVMOVE_EVENT@@@Z
; protected: virtual class LBI * __thiscall USER_BROWSER_LB::OnNewItem(unsigned int)
?OnNewItem@USER_BROWSER_LB@@MAEPAVLBI@@I@Z
; protected: virtual int __thiscall BASE_SET_FOCUS_DLG::OnOK(void)
?OnOK@BASE_SET_FOCUS_DLG@@MAEHXZ
; protected: virtual int __thiscall DIALOG_WINDOW::OnOK(void)
?OnOK@DIALOG_WINDOW@@MAEHXZ
; protected: virtual int __thiscall MSGPOPUP_DIALOG::OnOK(void)
?OnOK@MSGPOPUP_DIALOG@@MAEHXZ
; private: virtual int __thiscall MSG_DIALOG_BASE::OnOK(void)
?OnOK@MSG_DIALOG_BASE@@EAEHXZ
; protected: virtual int __thiscall NT_FIND_ACCOUNT_DIALOG::OnOK(void)
?OnOK@NT_FIND_ACCOUNT_DIALOG@@MAEHXZ
; protected: virtual int __thiscall NT_USER_BROWSER_DIALOG::OnOK(void)
?OnOK@NT_USER_BROWSER_DIALOG@@MAEHXZ
; protected: virtual int __thiscall PROMPT_FOR_ANY_DC_DLG::OnOK(void)
?OnOK@PROMPT_FOR_ANY_DC_DLG@@MAEHXZ
; protected: virtual int __thiscall CLIENT_WINDOW::OnOther(class EVENT const &)
?OnOther@CLIENT_WINDOW@@MAEHABVEVENT@@@Z
; protected: virtual int __thiscall APP_WINDOW::OnPaintReq(void)
?OnPaintReq@APP_WINDOW@@MAEHXZ
; protected: virtual int __thiscall CLIENT_WINDOW::OnPaintReq(void)
?OnPaintReq@CLIENT_WINDOW@@MAEHXZ
; protected: virtual int __thiscall DISPATCHER::OnPaintReq(void)
?OnPaintReq@DISPATCHER@@MAEHXZ
; protected: virtual int __thiscall FOCUS_CHECKBOX::OnPaintReq(void)
?OnPaintReq@FOCUS_CHECKBOX@@MAEHXZ
; protected: virtual int __thiscall H_SPLITTER_BAR::OnPaintReq(void)
?OnPaintReq@H_SPLITTER_BAR@@MAEHXZ
; protected: virtual int __thiscall LOGON_HOURS_CONTROL::OnPaintReq(void)
?OnPaintReq@LOGON_HOURS_CONTROL@@MAEHXZ
; protected: virtual int __thiscall METER::OnPaintReq(void)
?OnPaintReq@METER@@MAEHXZ
; protected: virtual unsigned long __thiscall DISPATCHER::OnQDlgCode(void)
?OnQDlgCode@DISPATCHER@@MAEKXZ
; protected: virtual unsigned long __thiscall LOGON_HOURS_CONTROL::OnQDlgCode(void)
?OnQDlgCode@LOGON_HOURS_CONTROL@@MAEKXZ
; protected: virtual unsigned long __thiscall DISPATCHER::OnQHitTest(class XYPOINT const &)
?OnQHitTest@DISPATCHER@@MAEKABVXYPOINT@@@Z
; protected: virtual unsigned long __thiscall H_SPLITTER_BAR::OnQHitTest(class XYPOINT const &)
?OnQHitTest@H_SPLITTER_BAR@@MAEKABVXYPOINT@@@Z
; protected: virtual unsigned long __thiscall LOGON_HOURS_CONTROL::OnQHitTest(class XYPOINT const &)
?OnQHitTest@LOGON_HOURS_CONTROL@@MAEKABVXYPOINT@@@Z
; protected: virtual int __thiscall APP_WINDOW::OnQMinMax(class QMINMAX_EVENT &)
?OnQMinMax@APP_WINDOW@@MAEHAAVQMINMAX_EVENT@@@Z
; protected: virtual unsigned long __thiscall DISPATCHER::OnQMouseActivate(class QMOUSEACT_EVENT const &)
?OnQMouseActivate@DISPATCHER@@MAEKABVQMOUSEACT_EVENT@@@Z
; protected: virtual unsigned long __thiscall LOGON_HOURS_CONTROL::OnQMouseActivate(class QMOUSEACT_EVENT const &)
?OnQMouseActivate@LOGON_HOURS_CONTROL@@MAEKABVQMOUSEACT_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnQMouseCursor(class QMOUSEACT_EVENT const &)
?OnQMouseCursor@DISPATCHER@@MAEHABVQMOUSEACT_EVENT@@@Z
; protected: virtual int __thiscall H_SPLITTER_BAR::OnQMouseCursor(class QMOUSEACT_EVENT const &)
?OnQMouseCursor@H_SPLITTER_BAR@@MAEHABVQMOUSEACT_EVENT@@@Z
; protected: virtual int __thiscall LOGON_HOURS_CONTROL::OnQMouseCursor(class QMOUSEACT_EVENT const &)
?OnQMouseCursor@LOGON_HOURS_CONTROL@@MAEHABVQMOUSEACT_EVENT@@@Z
; protected: long __thiscall SLE_STRLB_GROUP::OnRemove(void)
?OnRemove@SLE_STRLB_GROUP@@IAEJXZ
; protected: virtual int __thiscall CLIENT_WINDOW::OnResize(class SIZE_EVENT const &)
?OnResize@CLIENT_WINDOW@@MAEHABVSIZE_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnResize(class SIZE_EVENT const &)
?OnResize@DISPATCHER@@MAEHABVSIZE_EVENT@@@Z
; protected: virtual int __thiscall H_SPLITTER_BAR::OnResize(class SIZE_EVENT const &)
?OnResize@H_SPLITTER_BAR@@MAEHABVSIZE_EVENT@@@Z
; protected: virtual int __thiscall DIALOG_WINDOW::OnScrollBar(class SCROLL_EVENT const &)
?OnScrollBar@DIALOG_WINDOW@@MAEHABVSCROLL_EVENT@@@Z
; protected: virtual int __thiscall DIALOG_WINDOW::OnScrollBarThumb(class SCROLL_THUMB_EVENT const &)
?OnScrollBarThumb@DIALOG_WINDOW@@MAEHABVSCROLL_THUMB_EVENT@@@Z
; protected: long __thiscall NT_USER_BROWSER_DIALOG::OnSearch(void)
?OnSearch@NT_USER_BROWSER_DIALOG@@IAEJXZ
; protected: virtual int __thiscall CLIENT_WINDOW::OnSelect(class CONTROL_EVENT const &)
?OnSelect@CLIENT_WINDOW@@MAEHABVCONTROL_EVENT@@@Z
; protected: long __thiscall NT_USER_BROWSER_DIALOG::OnShowUsers(void)
?OnShowUsers@NT_USER_BROWSER_DIALOG@@IAEJXZ
; protected: virtual void __thiscall APP_WINDOW::OnShutdown(void)
?OnShutdown@APP_WINDOW@@MAEXXZ
; protected: virtual void __thiscall DIALOG_WINDOW::OnSysColorChange(void)
?OnSysColorChange@DIALOG_WINDOW@@MAEXXZ
; protected: virtual int __thiscall APP_WINDOW::OnSystemChange(class SYSCHANGE_EVENT const &)
?OnSystemChange@APP_WINDOW@@MAEHABVSYSCHANGE_EVENT@@@Z
; protected: virtual int __thiscall ARROW_BUTTON::OnTimer(class TIMER_EVENT const &)
?OnTimer@ARROW_BUTTON@@MAEHABVTIMER_EVENT@@@Z
; protected: virtual int __thiscall CANCEL_TASK_DIALOG::OnTimer(class TIMER_EVENT const &)
?OnTimer@CANCEL_TASK_DIALOG@@MAEHABVTIMER_EVENT@@@Z
; protected: virtual int __thiscall CLIENT_WINDOW::OnTimer(class TIMER_EVENT const &)
?OnTimer@CLIENT_WINDOW@@MAEHABVTIMER_EVENT@@@Z
; protected: virtual int __thiscall DIALOG_WINDOW::OnTimer(class TIMER_EVENT const &)
?OnTimer@DIALOG_WINDOW@@MAEHABVTIMER_EVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnTimer(class TIMER_EVENT const &)
?OnTimer@DISPATCHER@@MAEHABVTIMER_EVENT@@@Z
; protected: virtual int __thiscall TIMER_WINDOW::OnTimer(class TIMER_EVENT const &)
?OnTimer@TIMER_WINDOW@@MAEHABVTIMER_EVENT@@@Z
; protected: virtual void __thiscall TIMER_CALLOUT::OnTimerNotification(unsigned int)
?OnTimerNotification@TIMER_CALLOUT@@MAEXI@Z
; protected: virtual long __thiscall CONTROL_GROUP::OnUserAction(class CONTROL_WINDOW *,class CONTROL_EVENT const &)
?OnUserAction@CONTROL_GROUP@@MAEJPAVCONTROL_WINDOW@@ABVCONTROL_EVENT@@@Z
; protected: virtual long __thiscall CONTROL_WINDOW::OnUserAction(class CONTROL_EVENT const &)
?OnUserAction@CONTROL_WINDOW@@MAEJABVCONTROL_EVENT@@@Z
; protected: virtual long __thiscall LM_OLLB::OnUserAction(class CONTROL_EVENT const &)
?OnUserAction@LM_OLLB@@MAEJABVCONTROL_EVENT@@@Z
; protected: virtual long __thiscall MAGIC_GROUP::OnUserAction(class CONTROL_WINDOW *,class CONTROL_EVENT const &)
?OnUserAction@MAGIC_GROUP@@MAEJPAVCONTROL_WINDOW@@ABVCONTROL_EVENT@@@Z
; protected: virtual long __thiscall ORDER_GROUP::OnUserAction(class CONTROL_WINDOW *,class CONTROL_EVENT const &)
?OnUserAction@ORDER_GROUP@@MAEJPAVCONTROL_WINDOW@@ABVCONTROL_EVENT@@@Z
; protected: virtual long __thiscall RADIO_GROUP::OnUserAction(class CONTROL_WINDOW *,class CONTROL_EVENT const &)
?OnUserAction@RADIO_GROUP@@MAEJPAVCONTROL_WINDOW@@ABVCONTROL_EVENT@@@Z
; protected: virtual long __thiscall SET_CONTROL::OnUserAction(class CONTROL_WINDOW *,class CONTROL_EVENT const &)
?OnUserAction@SET_CONTROL@@MAEJPAVCONTROL_WINDOW@@ABVCONTROL_EVENT@@@Z
; protected: virtual long __thiscall SLE_STRLB_GROUP::OnUserAction(class CONTROL_WINDOW *,class CONTROL_EVENT const &)
?OnUserAction@SLE_STRLB_GROUP@@MAEJPAVCONTROL_WINDOW@@ABVCONTROL_EVENT@@@Z
; protected: virtual long __thiscall SPIN_GROUP::OnUserAction(class CONTROL_WINDOW *,class CONTROL_EVENT const &)
?OnUserAction@SPIN_GROUP@@MAEJPAVCONTROL_WINDOW@@ABVCONTROL_EVENT@@@Z
; protected: virtual long __thiscall STATELBGRP::OnUserAction(class CONTROL_WINDOW *,class CONTROL_EVENT const &)
?OnUserAction@STATELBGRP@@MAEJPAVCONTROL_WINDOW@@ABVCONTROL_EVENT@@@Z
; protected: virtual int __thiscall BASE_SET_FOCUS_DLG::OnUserMessage(class EVENT const &)
?OnUserMessage@BASE_SET_FOCUS_DLG@@MAEHABVEVENT@@@Z
; protected: virtual int __thiscall DISPATCHER::OnUserMessage(class EVENT const &)
?OnUserMessage@DISPATCHER@@MAEHABVEVENT@@@Z
; protected: virtual int __thiscall NT_USER_BROWSER_DIALOG::OnUserMessage(class EVENT const &)
?OnUserMessage@NT_USER_BROWSER_DIALOG@@MAEHABVEVENT@@@Z
; protected: virtual int __thiscall OWNER_WINDOW::OnUserMessage(class EVENT const &)
?OnUserMessage@OWNER_WINDOW@@MAEHABVEVENT@@@Z
; protected: virtual void __thiscall DIALOG_WINDOW::OnValidationError(unsigned int,long)
?OnValidationError@DIALOG_WINDOW@@MAEXIJ@Z
; private: class LISTBOX * __thiscall SET_CONTROL::OtherListbox(class LISTBOX *)const 
?OtherListbox@SET_CONTROL@@ABEPAVLISTBOX@@PAV2@@Z
; public: virtual void __thiscall BROWSER_DOMAIN_LBI::Paint(class LISTBOX *,struct HDC__ *,struct tagRECT const *,struct GUILTT_INFO *)const 
?Paint@BROWSER_DOMAIN_LBI@@UBEXPAVLISTBOX@@PAUHDC__@@PBUtagRECT@@PAUGUILTT_INFO@@@Z
; public: virtual void __thiscall BROWSER_DOMAIN_LBI_PB::Paint(class LISTBOX *,struct HDC__ *,struct tagRECT const *,struct GUILTT_INFO *)const 
?Paint@BROWSER_DOMAIN_LBI_PB@@UBEXPAVLISTBOX@@PAUHDC__@@PBUtagRECT@@PAUGUILTT_INFO@@@Z
; public: virtual void __thiscall COUNTED_STR_DTE::Paint(struct HDC__ *,struct tagRECT const *)const 
?Paint@COUNTED_STR_DTE@@UBEXPAUHDC__@@PBUtagRECT@@@Z
; public: int __thiscall DISPLAY_MAP::Paint(struct HDC__ *,int,int)const 
?Paint@DISPLAY_MAP@@QBEHPAUHDC__@@HH@Z
; public: void __thiscall DISPLAY_TABLE::Paint(class LISTBOX *,struct HDC__ *,struct tagRECT const *)const 
?Paint@DISPLAY_TABLE@@QBEXPAVLISTBOX@@PAUHDC__@@PBUtagRECT@@@Z
; public: void __thiscall DISPLAY_TABLE::Paint(class LISTBOX *,struct HDC__ *,struct tagRECT const *,struct GUILTT_INFO *)const 
?Paint@DISPLAY_TABLE@@QBEXPAVLISTBOX@@PAUHDC__@@PBUtagRECT@@PAUGUILTT_INFO@@@Z
; public: virtual void __thiscall DM_DTE::Paint(struct HDC__ *,struct tagRECT const *)const 
?Paint@DM_DTE@@UBEXPAUHDC__@@PBUtagRECT@@@Z
; public: virtual void __thiscall LBI::Paint(class LISTBOX *,struct HDC__ *,struct tagRECT const *,struct GUILTT_INFO *)const 
?Paint@LBI@@UBEXPAVLISTBOX@@PAUHDC__@@PBUtagRECT@@PAUGUILTT_INFO@@@Z
; public: virtual void __thiscall METALLIC_STR_DTE::Paint(struct HDC__ *,struct tagRECT const *)const 
?Paint@METALLIC_STR_DTE@@UBEXPAUHDC__@@PBUtagRECT@@@Z
; public: virtual void __thiscall MULTILINE_STR_DTE::Paint(struct HDC__ *,struct tagRECT const *)const 
?Paint@MULTILINE_STR_DTE@@UBEXPAUHDC__@@PBUtagRECT@@@Z
; public: virtual void __thiscall OLLB_ENTRY::Paint(class LISTBOX *,struct HDC__ *,struct tagRECT const *,struct GUILTT_INFO *)const 
?Paint@OLLB_ENTRY@@UBEXPAVLISTBOX@@PAUHDC__@@PBUtagRECT@@PAUGUILTT_INFO@@@Z
; public: virtual void __thiscall OWNER_DRAW_DMID_DTE::Paint(struct HDC__ *,struct tagRECT const *)const 
?Paint@OWNER_DRAW_DMID_DTE@@UBEXPAUHDC__@@PBUtagRECT@@@Z
; public: virtual void __thiscall OWNER_DRAW_MULTILINE_STR_DTE::Paint(struct HDC__ *,struct tagRECT const *)const 
?Paint@OWNER_DRAW_MULTILINE_STR_DTE@@UBEXPAUHDC__@@PBUtagRECT@@@Z
; public: virtual void __thiscall OWNER_DRAW_STR_DTE::Paint(struct HDC__ *,struct tagRECT const *)const 
?Paint@OWNER_DRAW_STR_DTE@@UBEXPAUHDC__@@PBUtagRECT@@@Z
; protected: virtual void __thiscall STLBITEM::Paint(class LISTBOX *,struct HDC__ *,struct tagRECT const *,struct GUILTT_INFO *)const 
?Paint@STLBITEM@@MBEXPAVLISTBOX@@PAUHDC__@@PBUtagRECT@@PAUGUILTT_INFO@@@Z
; public: virtual void __thiscall STR_DTE::Paint(struct HDC__ *,struct tagRECT const *)const 
?Paint@STR_DTE@@UBEXPAUHDC__@@PBUtagRECT@@@Z
; public: virtual void __thiscall STR_DTE_ELLIPSIS::Paint(struct HDC__ *,struct tagRECT const *)const 
?Paint@STR_DTE_ELLIPSIS@@UBEXPAUHDC__@@PBUtagRECT@@@Z
; public: virtual void __thiscall USER_BROWSER_LBI::Paint(class LISTBOX *,struct HDC__ *,struct tagRECT const *,struct GUILTT_INFO *)const 
?Paint@USER_BROWSER_LBI@@UBEXPAVLISTBOX@@PAUHDC__@@PBUtagRECT@@PAUGUILTT_INFO@@@Z
; protected: long __thiscall ACCOUNT_NAMES_MLE::ParseUserNameList(class STRLIST *,unsigned short const *)
?ParseUserNameList@ACCOUNT_NAMES_MLE@@IAEJPAVSTRLIST@@PBG@Z
; private: void __thiscall MSGPOPUP_DIALOG::PlaceButtons(void)
?PlaceButtons@MSGPOPUP_DIALOG@@AAEXXZ
; private: long __thiscall BLT_DATE_SPIN_GROUP::PlaceControl(int,class OWNER_WINDOW *,class INTL_PROFILE const &,class XYPOINT const &,class XYDIMENSION const &,class XYPOINT const &,class XYDIMENSION const &,class XYPOINT const &,class XYDIMENSION const &)
?PlaceControl@BLT_DATE_SPIN_GROUP@@AAEJHPAVOWNER_WINDOW@@ABVINTL_PROFILE@@ABVXYPOINT@@ABVXYDIMENSION@@2323@Z
; protected: virtual long __thiscall DOMAIN_FILL_THREAD::PostMain(void)
?PostMain@DOMAIN_FILL_THREAD@@MAEJXZ
; protected: virtual long __thiscall FOCUSDLG_DATA_THREAD::PostMain(void)
?PostMain@FOCUSDLG_DATA_THREAD@@MAEJXZ
; protected: virtual long __thiscall WIN32_THREAD::PostMain(void)
?PostMain@WIN32_THREAD@@MAEJXZ
; protected: virtual long __thiscall WIN32_THREAD::PreMain(void)
?PreMain@WIN32_THREAD@@MAEJXZ
; public: long __thiscall BASE_SET_FOCUS_DLG::Process(int *)
?Process@BASE_SET_FOCUS_DLG@@QAEJPAH@Z
; public: long __thiscall BASE_SET_FOCUS_DLG::Process(unsigned int *)
?Process@BASE_SET_FOCUS_DLG@@QAEJPAI@Z
; public: long __thiscall DIALOG_WINDOW::Process(int *)
?Process@DIALOG_WINDOW@@QAEJPAH@Z
; public: long __thiscall DIALOG_WINDOW::Process(unsigned int *)
?Process@DIALOG_WINDOW@@QAEJPAI@Z
; public: long __thiscall EXPANDABLE_DIALOG::Process(int *)
?Process@EXPANDABLE_DIALOG@@QAEJPAH@Z
; public: long __thiscall EXPANDABLE_DIALOG::Process(unsigned int *)
?Process@EXPANDABLE_DIALOG@@QAEJPAI@Z
; public: virtual long __thiscall GET_OPEN_FILENAME_DLG::Process(int *)
?Process@GET_OPEN_FILENAME_DLG@@UAEJPAH@Z
; public: virtual long __thiscall GET_SAVE_FILENAME_DLG::Process(int *)
?Process@GET_SAVE_FILENAME_DLG@@UAEJPAH@Z
; public: static long __stdcall WIN32_FONT_PICKER::Process(class OWNER_WINDOW *,int *,class FONT *,struct tagLOGFONTW *,struct tagCHOOSEFONTW *)
?Process@WIN32_FONT_PICKER@@SGJPAVOWNER_WINDOW@@PAHPAVFONT@@PAUtagLOGFONTW@@PAUtagCHOOSEFONTW@@@Z
; private: long __thiscall BASE_SET_FOCUS_DLG::ProcessNetPath(class NLS_STR *,long *)
?ProcessNetPath@BASE_SET_FOCUS_DLG@@AAEJPAVNLS_STR@@PAJ@Z
; public: long __thiscall WIN32_EVENT::Pulse(void)
?Pulse@WIN32_EVENT@@QAEJXZ
; public: long __thiscall USER_BROWSER_LBI::QualifyDisplayName(void)
?QualifyDisplayName@USER_BROWSER_LBI@@QAEJXZ
; public: static struct HICON__ * __stdcall CURSOR::Query(void)
?Query@CURSOR@@SGPAUHICON__@@XZ
; public: virtual long __thiscall SPIN_ITEM::QueryAccCharPos(unsigned short)
?QueryAccCharPos@SPIN_ITEM@@UAEJG@Z
; public: virtual long __thiscall SPIN_SLE_STR::QueryAccCharPos(unsigned short)
?QueryAccCharPos@SPIN_SLE_STR@@UAEJG@Z
; public: long __thiscall SPIN_ITEM::QueryAccKey(class NLS_STR *)
?QueryAccKey@SPIN_ITEM@@QAEJPAVNLS_STR@@@Z
; public: unsigned short const * __thiscall OPEN_LBI_BASE::QueryAccessName(void)const 
?QueryAccessName@OPEN_LBI_BASE@@QBEPBGXZ
; public: class SAM_DOMAIN * __thiscall BROWSER_DOMAIN::QueryAccountDomain(void)const 
?QueryAccountDomain@BROWSER_DOMAIN@@QBEPAVSAM_DOMAIN@@XZ
; public: unsigned short const * __thiscall BROWSER_SUBJECT::QueryAccountName(void)const 
?QueryAccountName@BROWSER_SUBJECT@@QBEPBGXZ
; public: unsigned short const * __thiscall USER_BROWSER_LBI::QueryAccountName(void)const 
?QueryAccountName@USER_BROWSER_LBI@@QBEPBGXZ
; protected: virtual int __thiscall H_SPLITTER_BAR::QueryActiveArea(void)
?QueryActiveArea@H_SPLITTER_BAR@@MAEHXZ
; protected: class PUSH_BUTTON * __thiscall SLE_STRLB_GROUP::QueryAddButton(void)const 
?QueryAddButton@SLE_STRLB_GROUP@@IBEPAVPUSH_BUTTON@@XZ
; public: class ADMIN_AUTHORITY * __thiscall BROWSER_DOMAIN::QueryAdminAuthority(void)const 
?QueryAdminAuthority@BROWSER_DOMAIN@@QBEPAVADMIN_AUTHORITY@@XZ
; public: class ADMIN_AUTHORITY * __thiscall DOMAIN_FILL_THREAD::QueryAdminAuthority(void)const 
?QueryAdminAuthority@DOMAIN_FILL_THREAD@@QBEPAVADMIN_AUTHORITY@@XZ
; public: unsigned short const * __thiscall UI_DOMAIN::QueryAnyDC(void)const 
?QueryAnyDC@UI_DOMAIN@@QBEPBGXZ
; public: int __thiscall OWNER_WINDOW::QueryAttribute(unsigned long)
?QueryAttribute@OWNER_WINDOW@@QAEHK@Z
; public: class AUDIT_CHECKBOXES * __thiscall SET_OF_AUDIT_CATEGORIES::QueryAuditCheckBox(int)
?QueryAuditCheckBox@SET_OF_AUDIT_CATEGORIES@@QAEPAVAUDIT_CHECKBOXES@@H@Z
; public: int __thiscall DEVICE_CONTEXT::QueryAveCharWidth(void)const 
?QueryAveCharWidth@DEVICE_CONTEXT@@QBEHXZ
; public: virtual unsigned long __thiscall CHANGEABLE_SPIN_ITEM::QueryBigDecValue(void)const 
?QueryBigDecValue@CHANGEABLE_SPIN_ITEM@@UBEKXZ
; public: virtual unsigned long __thiscall SPIN_SLE_VALID_SECOND::QueryBigDecValue(void)const 
?QueryBigDecValue@SPIN_SLE_VALID_SECOND@@UBEKXZ
; public: virtual unsigned long __thiscall CHANGEABLE_SPIN_ITEM::QueryBigIncValue(void)const 
?QueryBigIncValue@CHANGEABLE_SPIN_ITEM@@UBEKXZ
; public: virtual unsigned long __thiscall SPIN_SLE_VALID_SECOND::QueryBigIncValue(void)const 
?QueryBigIncValue@SPIN_SLE_VALID_SECOND@@UBEKXZ
; public: class BITFIELD * __thiscall STRING_BITSET_PAIR::QueryBitfield(void)
?QueryBitfield@STRING_BITSET_PAIR@@QAEPAVBITFIELD@@XZ
; public: struct HBITMAP__ * __thiscall DISPLAY_MAP::QueryBitmapHandle(void)const 
?QueryBitmapHandle@DISPLAY_MAP@@QBEPAUHBITMAP__@@XZ
; public: long __thiscall MASK_MAP::QueryBits(unsigned int,class BITFIELD *,class NLS_STR *,int *)
?QueryBits@MASK_MAP@@QAEJIPAVBITFIELD@@PAVNLS_STR@@PAH@Z
; public: int __thiscall XYRECT::QueryBottom(void)const 
?QueryBottom@XYRECT@@QBEHXZ
; public: class BROWSER_DOMAIN * __thiscall BROWSER_DOMAIN_LBI::QueryBrowserDomain(void)const 
?QueryBrowserDomain@BROWSER_DOMAIN_LBI@@QBEPAVBROWSER_DOMAIN@@XZ
; public: class BROWSER_DOMAIN * __thiscall BROWSER_DOMAIN_LBI_PB::QueryBrowserDomain(void)const 
?QueryBrowserDomain@BROWSER_DOMAIN_LBI_PB@@QBEPAVBROWSER_DOMAIN@@XZ
; protected: void * __thiscall NT_MEMORY::QueryBuffer(void)const 
?QueryBuffer@NT_MEMORY@@IBEPAXXZ
; protected: unsigned char const * __thiscall ENUM_OBJ_BASE::QueryBufferPtr(void)const 
?QueryBufferPtr@ENUM_OBJ_BASE@@IBEPBEXZ
; public: struct _DOMAIN_DISPLAY_GROUP const * __thiscall NT_GROUP_ENUM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@NT_GROUP_ENUM_OBJ@@QBEPBU_DOMAIN_DISPLAY_GROUP@@XZ
; public: struct _SERVER_INFO_101 const * __thiscall SERVER1_ENUM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@SERVER1_ENUM_OBJ@@QBEPBU_SERVER_INFO_101@@XZ
; public: class SAM_DOMAIN * __thiscall BROWSER_DOMAIN::QueryBuiltinDomain(void)const 
?QueryBuiltinDomain@BROWSER_DOMAIN@@QBEPAVSAM_DOMAIN@@XZ
; private: class PUSH_BUTTON * __thiscall MSGPOPUP_DIALOG::QueryButton(unsigned int)
?QueryButton@MSGPOPUP_DIALOG@@AAEPAVPUSH_BUTTON@@I@Z
; public: int __thiscall LIST_CONTROL::QueryCaretIndex(void)const 
?QueryCaretIndex@LIST_CONTROL@@QBEHXZ
; public: unsigned short __thiscall CHAR_EVENT::QueryChar(void)const 
?QueryChar@CHAR_EVENT@@QBEGXZ
; public: int __thiscall STATE2_BUTTON_CONTROL::QueryCheck(void)const 
?QueryCheck@STATE2_BUTTON_CONTROL@@QBEHXZ
; public: unsigned int __thiscall CONTROL_ENTRY::QueryCid(void)const 
?QueryCid@CONTROL_ENTRY@@QBEIXZ
; public: unsigned int __thiscall CONTROL_EVENT::QueryCid(void)const 
?QueryCid@CONTROL_EVENT@@QBEIXZ
; public: unsigned int __thiscall CONTROL_WINDOW::QueryCid(void)const 
?QueryCid@CONTROL_WINDOW@@QBEIXZ
; public: void __thiscall WINDOW::QueryClientRect(struct tagRECT *)const 
?QueryClientRect@WINDOW@@QBEXPAUtagRECT@@@Z
; public: void __thiscall WINDOW::QueryClientRect(class XYRECT *)const 
?QueryClientRect@WINDOW@@QBEXPAVXYRECT@@@Z
; public: unsigned int __thiscall CONTROL_EVENT::QueryCode(void)const 
?QueryCode@CONTROL_EVENT@@QBEIXZ
; public: unsigned int const * __thiscall STATELB::QueryColData(void)
?QueryColData@STATELB@@QAEPBIXZ
; public: unsigned int const * __thiscall BROWSER_DOMAIN_CB::QueryColWidthArray(void)const 
?QueryColWidthArray@BROWSER_DOMAIN_CB@@QBEPBIXZ
; public: unsigned int const * __thiscall USER_BROWSER_LB::QueryColWidthArray(void)const 
?QueryColWidthArray@USER_BROWSER_LB@@QBEPBIXZ
; protected: static unsigned short const * __stdcall CONTROL_WINDOW::QueryComboboxClassName(void)
?QueryComboboxClassName@CONTROL_WINDOW@@KGPBGXZ
; public: enum SCROLL_EVENT::SCROLL_COMMAND  __thiscall SCROLL_EVENT::QueryCommand(void)const 
?QueryCommand@SCROLL_EVENT@@QBE?AW4SCROLL_COMMAND@1@XZ
; public: unsigned short const * __thiscall BROWSER_SUBJECT::QueryComment(void)const 
?QueryComment@BROWSER_SUBJECT@@QBEPBGXZ
; public: long __thiscall NT_GROUP_ENUM_OBJ::QueryComment(class NLS_STR *)const 
?QueryComment@NT_GROUP_ENUM_OBJ@@QBEJPAVNLS_STR@@@Z
; public: unsigned short const * __thiscall SERVER1_ENUM_OBJ::QueryComment(void)const 
?QueryComment@SERVER1_ENUM_OBJ@@QBEPBGXZ
; public: unsigned short const * __thiscall USER_BROWSER_LBI::QueryComment(void)const 
?QueryComment@USER_BROWSER_LBI@@QBEPBGXZ
; protected: virtual int (__cdecl*__thiscall USER_BROWSER_LBI_CACHE::QueryCompareMethod(void)const )(void const *,void const *)
?QueryCompareMethod@USER_BROWSER_LBI_CACHE@@MBEP6AHPBX0@ZXZ
; protected: virtual int (__cdecl*__thiscall USER_LBI_CACHE::QueryCompareMethod(void)const )(void const *,void const *)
?QueryCompareMethod@USER_LBI_CACHE@@MBEP6AHPBX0@ZXZ
; public: class CONTROL_VALUE * __thiscall CONTROLVAL_CID_PAIR::QueryContVal(void)const 
?QueryContVal@CONTROLVAL_CID_PAIR@@QBEPAVCONTROL_VALUE@@XZ
; public: void __thiscall SPIN_SLE_NUM::QueryContent(unsigned long *)const 
?QueryContent@SPIN_SLE_NUM@@QBEXPAK@Z
; public: void __thiscall SPIN_SLE_NUM::QueryContent(class NLS_STR *)const 
?QueryContent@SPIN_SLE_NUM@@QBEXPAVNLS_STR@@@Z
; public: long __thiscall SPIN_SLE_STR::QueryContent(class NLS_STR *)const 
?QueryContent@SPIN_SLE_STR@@QBEJPAVNLS_STR@@@Z
; public: class CONTROL_WINDOW * __thiscall CUSTOM_CONTROL::QueryControlWin(void)const 
?QueryControlWin@CUSTOM_CONTROL@@QBEPAVCONTROL_WINDOW@@XZ
; public: unsigned int __thiscall ARRAY_CONTROLVAL_CID_PAIR::QueryCount(void)const 
?QueryCount@ARRAY_CONTROLVAL_CID_PAIR@@QBEIXZ
; public: unsigned int __thiscall BITFIELD::QueryCount(void)const 
?QueryCount@BITFIELD@@QBEIXZ
; public: unsigned int __thiscall CONTROL_TABLE::QueryCount(void)const 
?QueryCount@CONTROL_TABLE@@QBEIXZ
; public: int __thiscall COUNTED_STR_DTE::QueryCount(void)const 
?QueryCount@COUNTED_STR_DTE@@QBEHXZ
; public: int __thiscall HEAP_BASE::QueryCount(void)const 
?QueryCount@HEAP_BASE@@QBEHXZ
; public: int __thiscall LIST_CONTROL::QueryCount(void)const 
?QueryCount@LIST_CONTROL@@QBEHXZ
; public: unsigned int __thiscall MASK_MAP::QueryCount(void)
?QueryCount@MASK_MAP@@QAEIXZ
; public: unsigned long __thiscall NT_MEMORY::QueryCount(void)const 
?QueryCount@NT_MEMORY@@QBEKXZ
; public: int __thiscall RADIO_GROUP::QueryCount(void)
?QueryCount@RADIO_GROUP@@QAEHXZ
; public: int __thiscall SET_OF_AUDIT_CATEGORIES::QueryCount(void)
?QueryCount@SET_OF_AUDIT_CATEGORIES@@QAEHXZ
; public: unsigned long __thiscall USER_BROWSER_LBI_CACHE::QueryCount(void)const 
?QueryCount@USER_BROWSER_LBI_CACHE@@QBEKXZ
; public: int __thiscall USER_LBI_CACHE::QueryCount(void)const 
?QueryCount@USER_LBI_CACHE@@QBEHXZ
; protected: virtual long __thiscall USRLB_NT_GROUP_ENUM::QueryCountPreferences(unsigned long *,unsigned long *,unsigned int,unsigned long,unsigned long,unsigned long)
?QueryCountPreferences@USRLB_NT_GROUP_ENUM@@MAEJPAK0IKKK@Z
; public: class CONTROL_WINDOW * __thiscall CONTROL_ENTRY::QueryCtrlPtr(void)const 
?QueryCtrlPtr@CONTROL_ENTRY@@QBEPAVCONTROL_WINDOW@@XZ
; public: class USER_BROWSER_LBI_CACHE * __thiscall USER_BROWSER_LB::QueryCurrentCache(void)const 
?QueryCurrentCache@USER_BROWSER_LB@@QBEPAVUSER_BROWSER_LBI_CACHE@@XZ
; public: class BROWSER_DOMAIN * __thiscall NT_USER_BROWSER_DIALOG::QueryCurrentDomainFocus(void)const 
?QueryCurrentDomainFocus@NT_USER_BROWSER_DIALOG@@QBEPAVBROWSER_DOMAIN@@XZ
; protected: class SPIN_ITEM * __thiscall SPIN_GROUP::QueryCurrentField(void)const 
?QueryCurrentField@SPIN_GROUP@@IBEPAVSPIN_ITEM@@XZ
; public: int __thiscall LIST_CONTROL::QueryCurrentItem(void)const 
?QueryCurrentItem@LIST_CONTROL@@QBEHXZ
; public: unsigned short const * __thiscall NT_USER_BROWSER_DIALOG::QueryDCofPrimaryDomain(void)
?QueryDCofPrimaryDomain@NT_USER_BROWSER_DIALOG@@QAEPBGXZ
; public: int __thiscall BLT_DATE_SPIN_GROUP::QueryDay(void)const 
?QueryDay@BLT_DATE_SPIN_GROUP@@QBEHXZ
; public: int __thiscall WIN_TIME::QueryDay(void)const 
?QueryDay@WIN_TIME@@QBEHXZ
; public: int __thiscall INTL_PROFILE::QueryDayPos(void)const 
?QueryDayPos@INTL_PROFILE@@QBEHXZ
; public: unsigned long __thiscall UI_EXT::QueryDelta(void)const 
?QueryDelta@UI_EXT@@QBEKXZ
; public: unsigned long __thiscall UI_EXT_MGR::QueryDeltaDelta(void)const 
?QueryDeltaDelta@UI_EXT_MGR@@QBEKXZ
; private: unsigned int __thiscall HIER_LBI::QueryDescendants(void)
?QueryDescendants@HIER_LBI@@AAEIXZ
; public: int __thiscall H_SPLITTER_BAR::QueryDesiredHeight(void)
?QueryDesiredHeight@H_SPLITTER_BAR@@QAEHXZ
; public: long __thiscall DEVICE_COMBO::QueryDevice(class NLS_STR *)const 
?QueryDevice@DEVICE_COMBO@@QBEJPAVNLS_STR@@@Z
; public: struct HBITMAP__ * __thiscall GRAPHICAL_BUTTON_WITH_DISABLE::QueryDisable(void)const 
?QueryDisable@GRAPHICAL_BUTTON_WITH_DISABLE@@QBEPAUHBITMAP__@@XZ
; public: class DISPLAY_MAP * __thiscall BROWSER_DOMAIN_CB::QueryDisplayMap(class BROWSER_DOMAIN_LBI const *)
?QueryDisplayMap@BROWSER_DOMAIN_CB@@QAEPAVDISPLAY_MAP@@PBVBROWSER_DOMAIN_LBI@@@Z
; public: class DISPLAY_MAP * __thiscall DM_DTE::QueryDisplayMap(void)const 
?QueryDisplayMap@DM_DTE@@QBEPAVDISPLAY_MAP@@XZ
; public: class DISPLAY_MAP * __thiscall SUBJECT_BITMAP_BLOCK::QueryDisplayMap(int,int,int)
?QueryDisplayMap@SUBJECT_BITMAP_BLOCK@@QAEPAVDISPLAY_MAP@@HHH@Z
; public: class DISPLAY_MAP * __thiscall USER_BROWSER_LB::QueryDisplayMap(class USER_BROWSER_LBI const *)
?QueryDisplayMap@USER_BROWSER_LB@@QAEPAVDISPLAY_MAP@@PBVUSER_BROWSER_LBI@@@Z
; public: unsigned short const * __thiscall BROWSER_DOMAIN::QueryDisplayName(void)const 
?QueryDisplayName@BROWSER_DOMAIN@@QBEPBGXZ
; public: unsigned short const * __thiscall BROWSER_DOMAIN_LBI::QueryDisplayName(void)const 
?QueryDisplayName@BROWSER_DOMAIN_LBI@@QBEPBGXZ
; public: unsigned short const * __thiscall USER_BROWSER_LBI::QueryDisplayName(void)const 
?QueryDisplayName@USER_BROWSER_LBI@@QBEPBGXZ
; public: unsigned int __thiscall DM_DTE::QueryDisplayWidth(void)const 
?QueryDisplayWidth@DM_DTE@@QBEIXZ
; public: unsigned short const * __thiscall UI_EXT::QueryDllName(void)const 
?QueryDllName@UI_EXT@@QBEPBGXZ
; public: class DM_DTE * __thiscall OUTLINE_LISTBOX::QueryDmDte(enum OUTLINE_LB_LEVEL,int)const 
?QueryDmDte@OUTLINE_LISTBOX@@QBEPAVDM_DTE@@W4OUTLINE_LB_LEVEL@@H@Z
; public: class DMID_DTE * __thiscall SUBJECT_BITMAP_BLOCK::QueryDmDte(int,int,int)
?QueryDmDte@SUBJECT_BITMAP_BLOCK@@QAEPAVDMID_DTE@@HHH@Z
; public: unsigned short const * __thiscall OLLB_ENTRY::QueryDomain(void)const 
?QueryDomain@OLLB_ENTRY@@QBEPBGXZ
; public: unsigned int __thiscall BROWSE_DOMAIN_ENUM::QueryDomainCount(void)
?QueryDomainCount@BROWSE_DOMAIN_ENUM@@QAEIXZ
; public: long __thiscall LSA_TRANSLATED_NAME_MEM::QueryDomainIndex(unsigned long)const 
?QueryDomainIndex@LSA_TRANSLATED_NAME_MEM@@QBEJK@Z
; public: long __thiscall LSA_TRANSLATED_SID_MEM::QueryDomainIndex(unsigned long)const 
?QueryDomainIndex@LSA_TRANSLATED_SID_MEM@@QBEJK@Z
; public: unsigned short const * __thiscall BROWSER_DOMAIN::QueryDomainName(void)const 
?QueryDomainName@BROWSER_DOMAIN@@QBEPBGXZ
; public: unsigned short const * __thiscall BROWSER_SUBJECT::QueryDomainName(void)const 
?QueryDomainName@BROWSER_SUBJECT@@QBEPBGXZ
; public: unsigned short const * __thiscall BROWSE_DOMAIN_INFO::QueryDomainName(void)const 
?QueryDomainName@BROWSE_DOMAIN_INFO@@QBEPBGXZ
; public: unsigned short const * __thiscall USER_BROWSER_LBI::QueryDomainName(void)const 
?QueryDomainName@USER_BROWSER_LBI@@QBEPBGXZ
; public: class OS_SID const * __thiscall BROWSER_DOMAIN::QueryDomainSid(void)const 
?QueryDomainSid@BROWSER_DOMAIN@@QBEPBVOS_SID@@XZ
; public: class OS_SID const * __thiscall BROWSER_SUBJECT::QueryDomainSid(void)const 
?QueryDomainSid@BROWSER_SUBJECT@@QBEPBVOS_SID@@XZ
; protected: static unsigned short const * __stdcall CONTROL_WINDOW::QueryEditClassName(void)
?QueryEditClassName@CONTROL_WINDOW@@KGPBGXZ
; public: struct _ULC_ENTRY_BASE * __thiscall USER_BROWSER_LBI_CACHE::QueryEntryPtr(int)
?QueryEntryPtr@USER_BROWSER_LBI_CACHE@@QAEPAU_ULC_ENTRY_BASE@@H@Z
; public: long __thiscall ASSOCHWNDPDLG::QueryError(void)const 
?QueryError@ASSOCHWNDPDLG@@QBEJXZ
; public: long __thiscall ASSOCHWNDPWND::QueryError(void)const 
?QueryError@ASSOCHWNDPWND@@QBEJXZ
; public: long __thiscall BASE::QueryError(void)const 
?QueryError@BASE@@QBEJXZ
; public: long __thiscall CONTROL_WINDOW::QueryError(void)const 
?QueryError@CONTROL_WINDOW@@QBEJXZ
; public: long __thiscall FORWARDING_BASE::QueryError(void)const 
?QueryError@FORWARDING_BASE@@QBEJXZ
; public: long __thiscall SLT_ELLIPSIS::QueryError(void)const 
?QueryError@SLT_ELLIPSIS@@QBEJXZ
; protected: long __thiscall GET_FNAME_BASE_DLG::QueryErrorCode(void)const 
?QueryErrorCode@GET_FNAME_BASE_DLG@@IBEJXZ
; public: class USER_BROWSER_LBI * __thiscall USER_BROWSER_LB::QueryErrorLBI(void)const 
?QueryErrorLBI@USER_BROWSER_LB@@QBEPAVUSER_BROWSER_LBI@@XZ
; public: long __thiscall BROWSER_DOMAIN::QueryErrorLoadingAuthority(void)const 
?QueryErrorLoadingAuthority@BROWSER_DOMAIN@@QBEJXZ
; public: long __thiscall DOMAIN_FILL_THREAD::QueryErrorLoadingAuthority(void)const 
?QueryErrorLoadingAuthority@DOMAIN_FILL_THREAD@@QBEJXZ
; protected: virtual unsigned int __thiscall ARROW_BUTTON::QueryEventEffects(class CONTROL_EVENT const &)
?QueryEventEffects@ARROW_BUTTON@@MAEIABVCONTROL_EVENT@@@Z
; protected: virtual unsigned int __thiscall BUTTON_CONTROL::QueryEventEffects(class CONTROL_EVENT const &)
?QueryEventEffects@BUTTON_CONTROL@@MAEIABVCONTROL_EVENT@@@Z
; protected: virtual unsigned int __thiscall COMBOBOX::QueryEventEffects(class CONTROL_EVENT const &)
?QueryEventEffects@COMBOBOX@@MAEIABVCONTROL_EVENT@@@Z
; public: virtual unsigned int __thiscall CONTROL_VALUE::QueryEventEffects(class CONTROL_EVENT const &)
?QueryEventEffects@CONTROL_VALUE@@UAEIABVCONTROL_EVENT@@@Z
; protected: virtual unsigned int __thiscall EDIT_CONTROL::QueryEventEffects(class CONTROL_EVENT const &)
?QueryEventEffects@EDIT_CONTROL@@MAEIABVCONTROL_EVENT@@@Z
; protected: virtual unsigned int __thiscall LIST_CONTROL::QueryEventEffects(class CONTROL_EVENT const &)
?QueryEventEffects@LIST_CONTROL@@MAEIABVCONTROL_EVENT@@@Z
; public: int __thiscall HIER_LBI::QueryExpanded(void)const 
?QueryExpanded@HIER_LBI@@QBEHXZ
; public: class SLIST_OF_UI_EXT * __thiscall UI_EXT_MGR::QueryExtensions(void)
?QueryExtensions@UI_EXT_MGR@@QAEPAVSLIST_OF_UI_EXT@@XZ
; public: unsigned int __thiscall SET_OF_AUDIT_CATEGORIES::QueryFailedBaseCID(void)
?QueryFailedBaseCID@SET_OF_AUDIT_CATEGORIES@@QAEIXZ
; public: unsigned long __thiscall OPEN_LBI_BASE::QueryFileID(void)const 
?QueryFileID@OPEN_LBI_BASE@@QBEKXZ
; public: long __thiscall GET_FNAME_BASE_DLG::QueryFileTitle(class NLS_STR *)const 
?QueryFileTitle@GET_FNAME_BASE_DLG@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall GET_FNAME_BASE_DLG::QueryFilename(class NLS_STR *)const 
?QueryFilename@GET_FNAME_BASE_DLG@@QBEJPAVNLS_STR@@@Z
; protected: int __thiscall HEAP_BASE::QueryFirstLeaf(void)const 
?QueryFirstLeaf@HEAP_BASE@@IBEHXZ
; public: unsigned long __thiscall ACCOUNT_NAMES_MLE::QueryFlags(void)const 
?QueryFlags@ACCOUNT_NAMES_MLE@@QBEKXZ
; public: unsigned long __thiscall NT_USER_BROWSER_DIALOG::QueryFlags(void)const 
?QueryFlags@NT_USER_BROWSER_DIALOG@@QBEKXZ
; public: struct HFONT__ * __thiscall CONTROL_WINDOW::QueryFont(void)const 
?QueryFont@CONTROL_WINDOW@@QBEPAUHFONT__@@XZ
; public: int __thiscall DEVICE_CONTEXT::QueryFontHeight(void)const 
?QueryFontHeight@DEVICE_CONTEXT@@QBEHXZ
; public: unsigned short const * __thiscall BROWSER_SUBJECT::QueryFullName(void)const 
?QueryFullName@BROWSER_SUBJECT@@QBEPBGXZ
; public: unsigned short const * __thiscall USER_BROWSER_LBI::QueryFullName(void)const 
?QueryFullName@USER_BROWSER_LBI@@QBEPBGXZ
; public: class CONTROL_GROUP * __thiscall CONTROL_VALUE::QueryGroup(void)const 
?QueryGroup@CONTROL_VALUE@@QBEPAVCONTROL_GROUP@@XZ
; public: long __thiscall NT_GROUP_ENUM_OBJ::QueryGroup(class NLS_STR *)const 
?QueryGroup@NT_GROUP_ENUM_OBJ@@QBEJPAVNLS_STR@@@Z
; public: class CONTROL_GROUP * __thiscall SPIN_ITEM::QueryGroup(void)
?QueryGroup@SPIN_ITEM@@QAEPAVCONTROL_GROUP@@XZ
; public: struct HACCEL__ * __thiscall ACCELTABLE::QueryHandle(void)const 
?QueryHandle@ACCELTABLE@@QBEPAUHACCEL__@@XZ
; public: unsigned short __thiscall ATOM_BASE::QueryHandle(void)const 
?QueryHandle@ATOM_BASE@@QBEGXZ
; public: struct HBITMAP__ * __thiscall BIT_MAP::QueryHandle(void)const 
?QueryHandle@BIT_MAP@@QBEPAUHBITMAP__@@XZ
; public: struct HFONT__ * __thiscall FONT::QueryHandle(void)const 
?QueryHandle@FONT@@QBEPAUHFONT__@@XZ
; public: struct HMENU__ * __thiscall MENU_BASE::QueryHandle(void)const 
?QueryHandle@MENU_BASE@@QBEPAUHMENU__@@XZ
; public: void * __thiscall SAM_OBJECT::QueryHandle(void)const 
?QueryHandle@SAM_OBJECT@@QBEPAXXZ
; public: struct HBRUSH__ * __thiscall SOLID_BRUSH::QueryHandle(void)const 
?QueryHandle@SOLID_BRUSH@@QBEPAUHBRUSH__@@XZ
; public: void * __thiscall WIN32_HANDLE::QueryHandle(void)const 
?QueryHandle@WIN32_HANDLE@@QBEPAXXZ
; public: struct HDC__ * __thiscall DEVICE_CONTEXT::QueryHdc(void)const 
?QueryHdc@DEVICE_CONTEXT@@QBEPAUHDC__@@XZ
; public: unsigned int __thiscall BIT_MAP::QueryHeight(void)const 
?QueryHeight@BIT_MAP@@QBEIXZ
; public: unsigned int __thiscall DISPLAY_MAP::QueryHeight(void)const 
?QueryHeight@DISPLAY_MAP@@QBEIXZ
; public: int __thiscall LB_COLUMN_HEADER::QueryHeight(void)
?QueryHeight@LB_COLUMN_HEADER@@QAEHXZ
; public: unsigned int __thiscall SIZE_EVENT::QueryHeight(void)const 
?QueryHeight@SIZE_EVENT@@QBEIXZ
; public: unsigned int __thiscall XYDIMENSION::QueryHeight(void)const 
?QueryHeight@XYDIMENSION@@QBEIXZ
; protected: virtual unsigned long __thiscall BASE_PASSWORD_DIALOG::QueryHelpContext(void)
?QueryHelpContext@BASE_PASSWORD_DIALOG@@MAEKXZ
; protected: virtual unsigned long __thiscall BASE_SET_FOCUS_DLG::QueryHelpContext(void)
?QueryHelpContext@BASE_SET_FOCUS_DLG@@MAEKXZ
; protected: virtual unsigned long __thiscall DIALOG_WINDOW::QueryHelpContext(void)
?QueryHelpContext@DIALOG_WINDOW@@MAEKXZ
; public: unsigned long __thiscall GET_FNAME_BASE_DLG::QueryHelpContext(void)
?QueryHelpContext@GET_FNAME_BASE_DLG@@QAEKXZ
; protected: virtual unsigned long __thiscall MSGPOPUP_DIALOG::QueryHelpContext(void)
?QueryHelpContext@MSGPOPUP_DIALOG@@MAEKXZ
; protected: virtual unsigned long __thiscall NT_FIND_ACCOUNT_DIALOG::QueryHelpContext(void)
?QueryHelpContext@NT_FIND_ACCOUNT_DIALOG@@MAEKXZ
; protected: virtual unsigned long __thiscall NT_GLOBALGROUP_BROWSER_DIALOG::QueryHelpContext(void)
?QueryHelpContext@NT_GLOBALGROUP_BROWSER_DIALOG@@MAEKXZ
; protected: virtual unsigned long __thiscall NT_LOCALGROUP_BROWSER_DIALOG::QueryHelpContext(void)
?QueryHelpContext@NT_LOCALGROUP_BROWSER_DIALOG@@MAEKXZ
; public: virtual unsigned long __thiscall NT_USER_BROWSER_DIALOG::QueryHelpContext(void)
?QueryHelpContext@NT_USER_BROWSER_DIALOG@@UAEKXZ
; protected: virtual unsigned long __thiscall OPEN_DIALOG_BASE::QueryHelpContext(void)
?QueryHelpContext@OPEN_DIALOG_BASE@@MAEKXZ
; protected: virtual unsigned long __thiscall PROMPT_FOR_ANY_DC_DLG::QueryHelpContext(void)
?QueryHelpContext@PROMPT_FOR_ANY_DC_DLG@@MAEKXZ
; public: unsigned long __thiscall NT_USER_BROWSER_DIALOG::QueryHelpContextGlobalMembership(void)
?QueryHelpContextGlobalMembership@NT_USER_BROWSER_DIALOG@@QAEKXZ
; public: unsigned long __thiscall NT_USER_BROWSER_DIALOG::QueryHelpContextLocalMembership(void)
?QueryHelpContextLocalMembership@NT_USER_BROWSER_DIALOG@@QAEKXZ
; public: unsigned long __thiscall NT_USER_BROWSER_DIALOG::QueryHelpContextSearch(void)
?QueryHelpContextSearch@NT_USER_BROWSER_DIALOG@@QAEKXZ
; public: unsigned short const * __thiscall ASSOCHCFILE::QueryHelpFile(void)const 
?QueryHelpFile@ASSOCHCFILE@@QBEPBGXZ
; protected: virtual unsigned short const * __thiscall BASE_SET_FOCUS_DLG::QueryHelpFile(unsigned long)
?QueryHelpFile@BASE_SET_FOCUS_DLG@@MAEPBGK@Z
; protected: virtual unsigned short const * __thiscall DIALOG_WINDOW::QueryHelpFile(unsigned long)
?QueryHelpFile@DIALOG_WINDOW@@MAEPBGK@Z
; public: class NLS_STR * __thiscall GET_FNAME_BASE_DLG::QueryHelpFile(void)
?QueryHelpFile@GET_FNAME_BASE_DLG@@QAEPAVNLS_STR@@XZ
; protected: virtual unsigned short const * __thiscall NT_FIND_ACCOUNT_DIALOG::QueryHelpFile(unsigned long)
?QueryHelpFile@NT_FIND_ACCOUNT_DIALOG@@MAEPBGK@Z
; protected: virtual unsigned short const * __thiscall NT_GROUP_BROWSER_DIALOG::QueryHelpFile(unsigned long)
?QueryHelpFile@NT_GROUP_BROWSER_DIALOG@@MAEPBGK@Z
; public: virtual unsigned short const * __thiscall NT_USER_BROWSER_DIALOG::QueryHelpFile(unsigned long)
?QueryHelpFile@NT_USER_BROWSER_DIALOG@@UAEPBGK@Z
; public: unsigned int __thiscall QMOUSEACT_EVENT::QueryHitTest(void)const 
?QueryHitTest@QMOUSEACT_EVENT@@QBEIXZ
; public: unsigned int __thiscall LISTBOX::QueryHorizontalExtent(void)const 
?QueryHorizontalExtent@LISTBOX@@QBEIXZ
; public: int __thiscall BLT_TIME_SPIN_GROUP::QueryHour(void)const 
?QueryHour@BLT_TIME_SPIN_GROUP@@QBEHXZ
; public: int __thiscall WIN_TIME::QueryHour(void)const 
?QueryHour@WIN_TIME@@QBEHXZ
; public: long __thiscall LOGON_HOURS_CONTROL::QueryHours(class LOGON_HOURS_SETTING *)const 
?QueryHours@LOGON_HOURS_CONTROL@@QBEJPAVLOGON_HOURS_SETTING@@@Z
; public: struct HWND__ * __thiscall CONTROL_EVENT::QueryHwnd(void)const 
?QueryHwnd@CONTROL_EVENT@@QBEPAUHWND__@@XZ
; public: struct HWND__ * __thiscall DISPATCHER::QueryHwnd(void)const 
?QueryHwnd@DISPATCHER@@QBEPAUHWND__@@XZ
; protected: struct HWND__ * __thiscall DISPLAY_CONTEXT::QueryHwnd(void)
?QueryHwnd@DISPLAY_CONTEXT@@IAEPAUHWND__@@XZ
; public: struct HWND__ * __thiscall DLGLOAD::QueryHwnd(void)const 
?QueryHwnd@DLGLOAD@@QBEPAUHWND__@@XZ
; public: struct HWND__ * __thiscall OWNINGWND::QueryHwnd(void)const 
?QueryHwnd@OWNINGWND@@QBEPAUHWND__@@XZ
; public: struct HWND__ * __thiscall PWND2HWND::QueryHwnd(void)const 
?QueryHwnd@PWND2HWND@@QBEPAUHWND__@@XZ
; public: struct HWND__ * __thiscall WINDOW::QueryHwnd(void)const 
?QueryHwnd@WINDOW@@QBEPAUHWND__@@XZ
; public: unsigned int __thiscall DISPLAY_MAP::QueryID(void)const 
?QueryID@DISPLAY_MAP@@QBEIXZ
; public: int __thiscall STRING_BITSET_PAIR::QueryID(void)
?QueryID@STRING_BITSET_PAIR@@QAEHXZ
; public: unsigned int __thiscall TIMER_BASE::QueryID(void)const 
?QueryID@TIMER_BASE@@QBEIXZ
; public: struct HICON__ * __thiscall APP_WINDOW::QueryIcon(void)const 
?QueryIcon@APP_WINDOW@@QBEPAUHICON__@@XZ
; private: unsigned short const * __thiscall MSGPOPUP_DIALOG::QueryIcon(enum MSG_SEVERITY)
?QueryIcon@MSGPOPUP_DIALOG@@AAEPBGW4MSG_SEVERITY@@@Z
; public: int __thiscall HIER_LBI::QueryIndentLevel(void)
?QueryIndentLevel@HIER_LBI@@QAEHXZ
; public: class SLE * __thiscall SLE_STRLB_GROUP::QueryInputSLE(void)const 
?QueryInputSLE@SLE_STRLB_GROUP@@QBEPAVSLE@@XZ
; public: class XYRECT const & __thiscall PAINT_DISPLAY_CONTEXT::QueryInvalidRect(void)const 
?QueryInvalidRect@PAINT_DISPLAY_CONTEXT@@QBEABVXYRECT@@XZ
; public: class LBI * __thiscall BLT_LISTBOX::QueryItem(int)const 
?QueryItem@BLT_LISTBOX@@QBEPAVLBI@@H@Z
; public: class LBI * __thiscall BLT_LISTBOX::QueryItem(void)const 
?QueryItem@BLT_LISTBOX@@QBEPAVLBI@@XZ
; public: class CONTROL_ENTRY * __thiscall CONTROL_TABLE::QueryItem(unsigned int)const 
?QueryItem@CONTROL_TABLE@@QBEPAVCONTROL_ENTRY@@I@Z
; public: class OPEN_LBI_BASE * __thiscall OPEN_LBOX_BASE::QueryItem(int)const 
?QueryItem@OPEN_LBOX_BASE@@QBEPAVOPEN_LBI_BASE@@H@Z
; public: class OPEN_LBI_BASE * __thiscall OPEN_LBOX_BASE::QueryItem(void)const 
?QueryItem@OPEN_LBOX_BASE@@QBEPAVOPEN_LBI_BASE@@XZ
; public: class OLLB_ENTRY * __thiscall OUTLINE_LISTBOX::QueryItem(int)const 
?QueryItem@OUTLINE_LISTBOX@@QBEPAVOLLB_ENTRY@@H@Z
; public: class OLLB_ENTRY * __thiscall OUTLINE_LISTBOX::QueryItem(void)const 
?QueryItem@OUTLINE_LISTBOX@@QBEPAVOLLB_ENTRY@@XZ
; public: class STLBITEM * __thiscall STATELB::QueryItem(void)const 
?QueryItem@STATELB@@QBEPAVSTLBITEM@@XZ
; public: class USER_BROWSER_LBI * __thiscall USER_BROWSER_LB::QueryItem(int)const 
?QueryItem@USER_BROWSER_LB@@QBEPAVUSER_BROWSER_LBI@@H@Z
; public: class USER_BROWSER_LBI * __thiscall USER_BROWSER_LB::QueryItem(void)const 
?QueryItem@USER_BROWSER_LB@@QBEPAVUSER_BROWSER_LBI@@XZ
; public: virtual class LBI * __thiscall USER_LBI_CACHE::QueryItem(int)
?QueryItem@USER_LBI_CACHE@@UAEPAVLBI@@H@Z
; public: int __thiscall MENU_BASE::QueryItemCount(void)const 
?QueryItemCount@MENU_BASE@@QBEHXZ
; public: unsigned int __thiscall LIST_CONTROL::QueryItemHeight(unsigned int)const 
?QueryItemHeight@LIST_CONTROL@@QBEII@Z
; public: unsigned int __thiscall MENU_BASE::QueryItemID(int)const 
?QueryItemID@MENU_BASE@@QBEIH@Z
; public: int __thiscall STRING_LIST_CONTROL::QueryItemLength(int)const 
?QueryItemLength@STRING_LIST_CONTROL@@QBEHH@Z
; public: int __thiscall STRING_LIST_CONTROL::QueryItemSize(int)const 
?QueryItemSize@STRING_LIST_CONTROL@@QBEHH@Z
; public: unsigned int __thiscall MENU_BASE::QueryItemState(unsigned int,unsigned int)const 
?QueryItemState@MENU_BASE@@QBEIII@Z
; public: long __thiscall MENU_BASE::QueryItemText(unsigned short *,unsigned int,unsigned int,unsigned int)const 
?QueryItemText@MENU_BASE@@QBEJPAGIII@Z
; public: long __thiscall MENU_BASE::QueryItemText(class NLS_STR *,unsigned int,unsigned int)const 
?QueryItemText@MENU_BASE@@QBEJPAVNLS_STR@@II@Z
; public: long __thiscall STRING_LIST_CONTROL::QueryItemText(unsigned short *,int,int)const 
?QueryItemText@STRING_LIST_CONTROL@@QBEJPAGHH@Z
; public: long __thiscall STRING_LIST_CONTROL::QueryItemText(class NLS_STR *)const 
?QueryItemText@STRING_LIST_CONTROL@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall STRING_LIST_CONTROL::QueryItemText(class NLS_STR *,int)const 
?QueryItemText@STRING_LIST_CONTROL@@QBEJPAVNLS_STR@@H@Z
; private: long __thiscall STRING_LIST_CONTROL::QueryItemTextAux(unsigned short *,int)const 
?QueryItemTextAux@STRING_LIST_CONTROL@@ABEJPAGH@Z
; private: int __thiscall HIER_LBI::QueryLBIndex(void)
?QueryLBIndex@HIER_LBI@@AAEHXZ
; public: long __thiscall EVENT::QueryLParam(void)const 
?QueryLParam@EVENT@@QBEJXZ
; public: class LSA_POLICY * __thiscall BROWSER_DOMAIN::QueryLSAPolicy(void)const 
?QueryLSAPolicy@BROWSER_DOMAIN@@QBEPAVLSA_POLICY@@XZ
; public: class STATELB * __thiscall STATELBGRP::QueryLb(void)
?QueryLb@STATELBGRP@@QAEPAVSTATELB@@XZ
; public: virtual unsigned short __thiscall BROWSER_DOMAIN_LBI::QueryLeadingChar(void)const 
?QueryLeadingChar@BROWSER_DOMAIN_LBI@@UBEGXZ
; public: virtual unsigned short __thiscall BROWSER_DOMAIN_LBI_PB::QueryLeadingChar(void)const 
?QueryLeadingChar@BROWSER_DOMAIN_LBI_PB@@UBEGXZ
; public: virtual unsigned short __thiscall LBI::QueryLeadingChar(void)const 
?QueryLeadingChar@LBI@@UBEGXZ
; public: virtual unsigned short __thiscall OLLB_ENTRY::QueryLeadingChar(void)const 
?QueryLeadingChar@OLLB_ENTRY@@UBEGXZ
; protected: virtual unsigned short __thiscall OPEN_LBI_BASE::QueryLeadingChar(void)const 
?QueryLeadingChar@OPEN_LBI_BASE@@MBEGXZ
; protected: virtual unsigned short __thiscall STLBITEM::QueryLeadingChar(void)const 
?QueryLeadingChar@STLBITEM@@MBEGXZ
; public: virtual unsigned short __thiscall USER_BROWSER_LBI::QueryLeadingChar(void)const 
?QueryLeadingChar@USER_BROWSER_LBI@@UBEGXZ
; public: int __thiscall XYRECT::QueryLeft(void)const 
?QueryLeft@XYRECT@@QBEHXZ
; protected: int __thiscall HEAP_BASE::QueryLeftChild(int)const 
?QueryLeftChild@HEAP_BASE@@IBEHH@Z
; public: virtual unsigned int __thiscall DTE::QueryLeftMargin(void)const 
?QueryLeftMargin@DTE@@UBEIXZ
; public: virtual unsigned int __thiscall METALLIC_STR_DTE::QueryLeftMargin(void)const 
?QueryLeftMargin@METALLIC_STR_DTE@@UBEIXZ
; public: int __thiscall OLLB_ENTRY::QueryLevel(void)const 
?QueryLevel@OLLB_ENTRY@@QBEHXZ
; public: unsigned long __thiscall CHANGEABLE_SPIN_ITEM::QueryLimit(void)const 
?QueryLimit@CHANGEABLE_SPIN_ITEM@@QBEKXZ
; protected: virtual int __thiscall CONSOLE_ELLIPSIS::QueryLimit(void)
?QueryLimit@CONSOLE_ELLIPSIS@@MAEHXZ
; protected: virtual int __thiscall WIN_ELLIPSIS::QueryLimit(void)
?QueryLimit@WIN_ELLIPSIS@@MAEHXZ
; protected: static unsigned short const * __stdcall CONTROL_WINDOW::QueryListboxClassName(void)
?QueryListboxClassName@CONTROL_WINDOW@@KGPBGXZ
; long __stdcall QueryLoggedOnDomainInfo(class NLS_STR *,class NLS_STR *)
?QueryLoggedOnDomainInfo@@YGJPAVNLS_STR@@0@Z
; public: unsigned short const * __thiscall BROWSER_DOMAIN::QueryLsaLookupName(void)const 
?QueryLsaLookupName@BROWSER_DOMAIN@@QBEPBGXZ
; public: struct HBITMAP__ * __thiscall GRAPHICAL_BUTTON_WITH_DISABLE::QueryMain(void)const 
?QueryMain@GRAPHICAL_BUTTON_WITH_DISABLE@@QBEPAUHBITMAP__@@XZ
; public: struct HBITMAP__ * __thiscall GRAPHICAL_BUTTON_WITH_DISABLE::QueryMainInvert(void)const 
?QueryMainInvert@GRAPHICAL_BUTTON_WITH_DISABLE@@QBEPAUHBITMAP__@@XZ
; public: class DISPLAY_MAP * const * __thiscall STATELB::QueryMapArray(void)const 
?QueryMapArray@STATELB@@QBEPBQAVDISPLAY_MAP@@XZ
; public: int __thiscall STATELB::QueryMapCount(void)const 
?QueryMapCount@STATELB@@QBEHXZ
; public: class BITFIELD * __thiscall AUDIT_CHECKBOXES::QueryMask(void)
?QueryMask@AUDIT_CHECKBOXES@@QAEPAVBITFIELD@@XZ
; public: struct HBITMAP__ * __thiscall DISPLAY_MAP::QueryMaskHandle(void)const 
?QueryMaskHandle@DISPLAY_MAP@@QBEPAUHBITMAP__@@XZ
; public: static long __stdcall BLT_MASTER_TIMER::QueryMasterTimer(class BLT_MASTER_TIMER * *)
?QueryMasterTimer@BLT_MASTER_TIMER@@SGJPAPAV1@@Z
; public: unsigned long __thiscall CHANGEABLE_SPIN_ITEM::QueryMax(void)const 
?QueryMax@CHANGEABLE_SPIN_ITEM@@QBEKXZ
; public: unsigned int __thiscall SCROLLBAR::QueryMax(void)const 
?QueryMax@SCROLLBAR@@QBEIXZ
; protected: virtual int __thiscall CONSOLE_ELLIPSIS::QueryMaxCharWidth(void)
?QueryMaxCharWidth@CONSOLE_ELLIPSIS@@MAEHXZ
; protected: virtual int __thiscall WIN_ELLIPSIS::QueryMaxCharWidth(void)
?QueryMaxCharWidth@WIN_ELLIPSIS@@MAEHXZ
; public: struct HMENU__ * __thiscall APP_WINDOW::QueryMenu(void)const 
?QueryMenu@APP_WINDOW@@QBEPAUHMENU__@@XZ
; public: struct HMENU__ * __thiscall UI_MENU_EXT::QueryMenuHandle(void)const 
?QueryMenuHandle@UI_MENU_EXT@@QBEPAUHMENU__@@XZ
; public: unsigned int __thiscall EVENT::QueryMessage(void)const 
?QueryMessage@EVENT@@QBEIXZ
; public: int __thiscall BLT_TIME_SPIN_GROUP::QueryMin(void)const 
?QueryMin@BLT_TIME_SPIN_GROUP@@QBEHXZ
; public: unsigned long __thiscall CHANGEABLE_SPIN_ITEM::QueryMin(void)const 
?QueryMin@CHANGEABLE_SPIN_ITEM@@QBEKXZ
; public: unsigned int __thiscall SCROLLBAR::QueryMin(void)const 
?QueryMin@SCROLLBAR@@QBEIXZ
; public: int __thiscall WIN_TIME::QueryMinute(void)const 
?QueryMinute@WIN_TIME@@QBEHXZ
; public: long __thiscall ELAPSED_TIME_CONTROL::QueryMinuteValue(void)const 
?QueryMinuteValue@ELAPSED_TIME_CONTROL@@QBEJXZ
; public: struct HINSTANCE__ * __thiscall ASSOCHCFILE::QueryModule(void)const 
?QueryModule@ASSOCHCFILE@@QBEPAUHINSTANCE__@@XZ
; public: int __thiscall BLT_DATE_SPIN_GROUP::QueryMonth(void)const 
?QueryMonth@BLT_DATE_SPIN_GROUP@@QBEHXZ
; public: int __thiscall WIN_TIME::QueryMonth(void)const 
?QueryMonth@WIN_TIME@@QBEHXZ
; public: int __thiscall INTL_PROFILE::QueryMonthPos(void)const 
?QueryMonthPos@INTL_PROFILE@@QBEHXZ
; public: long __thiscall LSA_PRIMARY_DOM_INFO_MEM::QueryName(class NLS_STR *)const 
?QueryName@LSA_PRIMARY_DOM_INFO_MEM@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall LSA_REF_DOMAIN_MEM::QueryName(unsigned long,class NLS_STR *)const 
?QueryName@LSA_REF_DOMAIN_MEM@@QBEJKPAVNLS_STR@@@Z
; public: long __thiscall LSA_TRANSLATED_NAME_MEM::QueryName(unsigned long,class NLS_STR *)const 
?QueryName@LSA_TRANSLATED_NAME_MEM@@QBEJKPAVNLS_STR@@@Z
; public: long __thiscall LSA_TRUST_INFO_MEM::QueryName(unsigned long,class NLS_STR *)const 
?QueryName@LSA_TRUST_INFO_MEM@@QBEJKPAVNLS_STR@@@Z
; public: long __thiscall SAM_RID_ENUMERATION_MEM::QueryName(unsigned long,class NLS_STR *)const 
?QueryName@SAM_RID_ENUMERATION_MEM@@QBEJKPAVNLS_STR@@@Z
; public: unsigned short const * __thiscall SERVER1_ENUM_OBJ::QueryName(void)const 
?QueryName@SERVER1_ENUM_OBJ@@QBEPBGXZ
; public: unsigned short const * __thiscall UI_DOMAIN::QueryName(void)const 
?QueryName@UI_DOMAIN@@QBEPBGXZ
; protected: struct tagOFNW * __thiscall GET_FNAME_BASE_DLG::QueryOFN(void)
?QueryOFN@GET_FNAME_BASE_DLG@@IAEPAUtagOFNW@@XZ
; public: class OS_SID const * __thiscall SAM_DOMAIN::QueryOSSID(void)const 
?QueryOSSID@SAM_DOMAIN@@QBEPBVOS_SID@@XZ
; public: class OS_SID const * __thiscall USER_BROWSER_LBI::QueryOSSID(void)const 
?QueryOSSID@USER_BROWSER_LBI@@QBEPBVOS_SID@@XZ
; protected: virtual long __thiscall CANCEL_TASK_DIALOG::QueryObjectName(class NLS_STR *)
?QueryObjectName@CANCEL_TASK_DIALOG@@MAEJPAVNLS_STR@@@Z
; public: class NLS_STR  __thiscall BASE_ELLIPSIS::QueryOriginalStr(void)const 
?QueryOriginalStr@BASE_ELLIPSIS@@QBE?AVNLS_STR@@XZ
; public: struct HWND__ * __thiscall WINDOW::QueryOwnerHwnd(void)const 
?QueryOwnerHwnd@WINDOW@@QBEPAUHWND__@@XZ
; public: class OWNER_WINDOW * __thiscall SET_OF_AUDIT_CATEGORIES::QueryOwnerWindow(void)
?QueryOwnerWindow@SET_OF_AUDIT_CATEGORIES@@QAEPAVOWNER_WINDOW@@XZ
; public: unsigned short const * __thiscall UI_DOMAIN::QueryPDC(void)const 
?QueryPDC@UI_DOMAIN@@QBEPBGXZ
; public: void * __thiscall LSA_ACCT_DOM_INFO_MEM::QueryPSID(void)const 
?QueryPSID@LSA_ACCT_DOM_INFO_MEM@@QBEPAXXZ
; public: void * __thiscall LSA_PRIMARY_DOM_INFO_MEM::QueryPSID(void)const 
?QueryPSID@LSA_PRIMARY_DOM_INFO_MEM@@QBEPAXXZ
; public: void * __thiscall LSA_REF_DOMAIN_MEM::QueryPSID(unsigned long)const 
?QueryPSID@LSA_REF_DOMAIN_MEM@@QBEPAXK@Z
; public: void * __thiscall LSA_TRUST_INFO_MEM::QueryPSID(unsigned long)const 
?QueryPSID@LSA_TRUST_INFO_MEM@@QBEPAXK@Z
; public: void * __thiscall OS_SID::QueryPSID(void)const 
?QueryPSID@OS_SID@@QBEPAXXZ
; public: void * __thiscall SAM_DOMAIN::QueryPSID(void)const 
?QueryPSID@SAM_DOMAIN@@QBEPAXXZ
; public: void * __thiscall USER_BROWSER_LBI::QueryPSID(void)const 
?QueryPSID@USER_BROWSER_LBI@@QBEQAXXZ
; protected: int __thiscall HEAP_BASE::QueryParent(int)const 
?QueryParent@HEAP_BASE@@IBEHH@Z
; public: long __thiscall BASE_PASSWORD_DIALOG::QueryPassword(class NLS_STR *)
?QueryPassword@BASE_PASSWORD_DIALOG@@QAEJPAVNLS_STR@@@Z
; public: unsigned short const * __thiscall OPEN_LBI_BASE::QueryPath(void)const 
?QueryPath@OPEN_LBI_BASE@@QBEPBGXZ
; public: unsigned short const * __thiscall NLS_STR::QueryPch(void)const 
?QueryPch@NLS_STR@@QBEPBGXZ
; public: unsigned short const * __thiscall STR_DTE::QueryPch(void)const 
?QueryPch@STR_DTE@@QBEPBGXZ
; public: unsigned long __thiscall OPEN_LBI_BASE::QueryPermissions(void)const 
?QueryPermissions@OPEN_LBI_BASE@@QBEKXZ
; public: struct tagPOINT  __thiscall XYPOINT::QueryPoint(void)const 
?QueryPoint@XYPOINT@@QBE?AUtagPOINT@@XZ
; public: static class XYPOINT  __stdcall CURSOR::QueryPos(void)
?QueryPos@CURSOR@@SG?AVXYPOINT@@XZ
; public: class XYPOINT  __thiscall MOUSE_EVENT::QueryPos(void)const 
?QueryPos@MOUSE_EVENT@@QBE?AVXYPOINT@@XZ
; public: unsigned int __thiscall SCROLLBAR::QueryPos(void)const 
?QueryPos@SCROLLBAR@@QBEIXZ
; public: class XYPOINT  __thiscall SPIN_GROUP::QueryPos(void)
?QueryPos@SPIN_GROUP@@QAE?AVXYPOINT@@XZ
; public: class XYPOINT  __thiscall WINDOW::QueryPos(void)const 
?QueryPos@WINDOW@@QBE?AVXYPOINT@@XZ
; public: int __thiscall WIN32_THREAD::QueryPriority(void)
?QueryPriority@WIN32_THREAD@@QAEHXZ
; public: unsigned long __thiscall PROC_INSTANCE::QueryProc(void)const 
?QueryProc@PROC_INSTANCE@@QBEKXZ
; public: class NLS_STR * __thiscall ITER_SL_NLS_STR::QueryProp(void)
?QueryProp@ITER_SL_NLS_STR@@QAEPAVNLS_STR@@XZ
; public: class USER_BROWSER_LBI * __thiscall ITER_SL_USER_BROWSER_LBI::QueryProp(void)
?QueryProp@ITER_SL_USER_BROWSER_LBI@@QAEPAVUSER_BROWSER_LBI@@XZ
; public: unsigned short const * __thiscall IDRESOURCE::QueryPsz(void)const 
?QueryPsz@IDRESOURCE@@QBEPBGXZ
; public: unsigned char * __thiscall BLT_SCRATCH::QueryPtr(void)const 
?QueryPtr@BLT_SCRATCH@@QBEPAEXZ
; public: struct _POLICY_ACCOUNT_DOMAIN_INFO const * __thiscall LSA_ACCT_DOM_INFO_MEM::QueryPtr(void)const 
?QueryPtr@LSA_ACCT_DOM_INFO_MEM@@QBEPBU_POLICY_ACCOUNT_DOMAIN_INFO@@XZ
; public: struct _POLICY_PRIMARY_DOMAIN_INFO const * __thiscall LSA_PRIMARY_DOM_INFO_MEM::QueryPtr(void)const 
?QueryPtr@LSA_PRIMARY_DOM_INFO_MEM@@QBEPBU_POLICY_PRIMARY_DOMAIN_INFO@@XZ
; private: struct _LSA_TRUST_INFORMATION const * __thiscall LSA_REF_DOMAIN_MEM::QueryPtr(void)const 
?QueryPtr@LSA_REF_DOMAIN_MEM@@ABEPBU_LSA_TRUST_INFORMATION@@XZ
; private: struct _LSA_TRANSLATED_NAME const * __thiscall LSA_TRANSLATED_NAME_MEM::QueryPtr(void)const 
?QueryPtr@LSA_TRANSLATED_NAME_MEM@@ABEPBU_LSA_TRANSLATED_NAME@@XZ
; private: struct _LSA_TRANSLATED_SID const * __thiscall LSA_TRANSLATED_SID_MEM::QueryPtr(void)const 
?QueryPtr@LSA_TRANSLATED_SID_MEM@@ABEPBU_LSA_TRANSLATED_SID@@XZ
; public: struct _LSA_TRUST_INFORMATION const * __thiscall LSA_TRUST_INFO_MEM::QueryPtr(void)const 
?QueryPtr@LSA_TRUST_INFO_MEM@@QBEPBU_LSA_TRUST_INFORMATION@@XZ
; public: struct _SAM_RID_ENUMERATION const * __thiscall SAM_RID_ENUMERATION_MEM::QueryPtr(void)const 
?QueryPtr@SAM_RID_ENUMERATION_MEM@@QBEPBU_SAM_RID_ENUMERATION@@XZ
; private: unsigned long const * __thiscall SAM_RID_MEM::QueryPtr(void)const 
?QueryPtr@SAM_RID_MEM@@ABEPBKXZ
; public: void * * __thiscall SAM_SID_MEM::QueryPtr(void)const 
?QueryPtr@SAM_SID_MEM@@QBEPAPAXXZ
; public: long __thiscall BROWSER_SUBJECT::QueryQualifiedName(class NLS_STR *,class NLS_STR const *,int)const 
?QueryQualifiedName@BROWSER_SUBJECT@@QBEJPAVNLS_STR@@PBV2@H@Z
; public: unsigned int __thiscall CONTROLVAL_CID_PAIR::QueryRBCID(void)const 
?QueryRBCID@CONTROLVAL_CID_PAIR@@QBEIXZ
; public: unsigned long __thiscall LSA_TRANSLATED_SID_MEM::QueryRID(unsigned long)const 
?QueryRID@LSA_TRANSLATED_SID_MEM@@QBEKK@Z
; public: unsigned int __thiscall NT_GROUP_ENUM_OBJ::QueryRID(void)const 
?QueryRID@NT_GROUP_ENUM_OBJ@@QBEIXZ
; public: unsigned long __thiscall SAM_RID_ENUMERATION_MEM::QueryRID(unsigned long)const 
?QueryRID@SAM_RID_ENUMERATION_MEM@@QBEKK@Z
; public: unsigned long __thiscall SAM_RID_MEM::QueryRID(unsigned long)const 
?QueryRID@SAM_RID_MEM@@QBEKK@Z
; public: unsigned long __thiscall CHANGEABLE_SPIN_ITEM::QueryRange(void)const 
?QueryRange@CHANGEABLE_SPIN_ITEM@@QBEKXZ
; protected: class PUSH_BUTTON * __thiscall SLE_STRLB_GROUP::QueryRemoveButton(void)const 
?QueryRemoveButton@SLE_STRLB_GROUP@@IBEPAVPUSH_BUTTON@@XZ
; public: unsigned int __thiscall KEY_EVENT::QueryRepeat(void)const 
?QueryRepeat@KEY_EVENT@@QBEIXZ
; public: int __thiscall XYRECT::QueryRight(void)const 
?QueryRight@XYRECT@@QBEHXZ
; protected: int __thiscall HEAP_BASE::QueryRightSibling(int)const 
?QueryRightSibling@HEAP_BASE@@IBEHH@Z
; public: virtual struct HWND__ * __thiscall CLIENT_WINDOW::QueryRobustHwnd(void)const 
?QueryRobustHwnd@CLIENT_WINDOW@@UBEPAUHWND__@@XZ
; public: virtual struct HWND__ * __thiscall DIALOG_WINDOW::QueryRobustHwnd(void)const 
?QueryRobustHwnd@DIALOG_WINDOW@@UBEPAUHWND__@@XZ
; public: virtual struct HWND__ * __thiscall DISPATCHER::QueryRobustHwnd(void)const 
?QueryRobustHwnd@DISPATCHER@@UBEPAUHWND__@@XZ
; public: unsigned int __thiscall SET_OF_AUDIT_CATEGORIES::QuerySLTBaseCID(void)
?QuerySLTBaseCID@SET_OF_AUDIT_CATEGORIES@@QAEIXZ
; public: unsigned int __thiscall LISTBOX::QueryScrollPos(void)const 
?QueryScrollPos@LISTBOX@@QBEIXZ
; public: int __thiscall BLT_TIME_SPIN_GROUP::QuerySec(void)const 
?QuerySec@BLT_TIME_SPIN_GROUP@@QBEHXZ
; public: int __thiscall WIN_TIME::QuerySecond(void)const 
?QuerySecond@WIN_TIME@@QBEHXZ
; public: long __thiscall ELAPSED_TIME_CONTROL::QuerySecondValue(void)const 
?QuerySecondValue@ELAPSED_TIME_CONTROL@@QBEJXZ
; public: int __thiscall LIST_CONTROL::QuerySelCount(void)const 
?QuerySelCount@LIST_CONTROL@@QBEHXZ
; public: long __thiscall LIST_CONTROL::QuerySelItems(int *,int)const 
?QuerySelItems@LIST_CONTROL@@QBEJPAHH@Z
; public: int __thiscall GRAPHICAL_BUTTON_WITH_DISABLE::QuerySelected(void)const 
?QuerySelected@GRAPHICAL_BUTTON_WITH_DISABLE@@QBEHXZ
; public: unsigned int __thiscall MAGIC_GROUP::QuerySelection(void)const 
?QuerySelection@MAGIC_GROUP@@QBEIXZ
; public: unsigned int __thiscall RADIO_GROUP::QuerySelection(void)const 
?QuerySelection@RADIO_GROUP@@QBEIXZ
; public: class SLIST_OF_USER_BROWSER_LBI * __thiscall NT_USER_BROWSER_DIALOG::QuerySelectionCache(void)
?QuerySelectionCache@NT_USER_BROWSER_DIALOG@@QAEPAVSLIST_OF_USER_BROWSER_LBI@@XZ
; public: class SLIST_OF_USER_BROWSER_LBI * __thiscall NT_USER_BROWSER_DIALOG::QuerySelectionList(void)
?QuerySelectionList@NT_USER_BROWSER_DIALOG@@QAEPAVSLIST_OF_USER_BROWSER_LBI@@XZ
; public: unsigned short const * __thiscall ADMIN_AUTHORITY::QueryServer(void)const 
?QueryServer@ADMIN_AUTHORITY@@QBEPBGXZ
; public: unsigned short const * __thiscall OLLB_ENTRY::QueryServer(void)const 
?QueryServer@OLLB_ENTRY@@QBEPBGXZ
; public: unsigned short const * __thiscall OPEN_DIALOG_BASE::QueryServer(void)const 
?QueryServer@OPEN_DIALOG_BASE@@QBEPBGXZ
; public: unsigned short const * __thiscall NT_USER_BROWSER_DIALOG::QueryServerResourceLivesOn(void)const 
?QueryServerResourceLivesOn@NT_USER_BROWSER_DIALOG@@QBEPBGXZ
; public: class OS_SID const * __thiscall BROWSER_SUBJECT::QuerySid(void)const 
?QuerySid@BROWSER_SUBJECT@@QBEPBVOS_SID@@XZ
; public: void * __thiscall OS_SID::QuerySid(void)const 
?QuerySid@OS_SID@@QBEPAXXZ
; public: unsigned int __thiscall BLT_LISTBOX::QuerySingleLineHeight(void)
?QuerySingleLineHeight@BLT_LISTBOX@@QAEIXZ
; public: unsigned int __thiscall BLT_SCRATCH::QuerySize(void)const 
?QuerySize@BLT_SCRATCH@@QBEIXZ
; public: class XYDIMENSION  __thiscall SPIN_GROUP::QuerySize(void)
?QuerySize@SPIN_GROUP@@QAE?AVXYDIMENSION@@XZ
; public: class XYDIMENSION  __thiscall WINDOW::QuerySize(void)const 
?QuerySize@WINDOW@@QBE?AVXYDIMENSION@@XZ
; public: void __thiscall WINDOW::QuerySize(int *,int *)const 
?QuerySize@WINDOW@@QBEXPAH0@Z
; public: virtual unsigned long __thiscall CHANGEABLE_SPIN_ITEM::QuerySmallDecValue(void)const 
?QuerySmallDecValue@CHANGEABLE_SPIN_ITEM@@UBEKXZ
; public: virtual unsigned long __thiscall SPIN_SLE_VALID_SECOND::QuerySmallDecValue(void)const 
?QuerySmallDecValue@SPIN_SLE_VALID_SECOND@@UBEKXZ
; public: virtual unsigned long __thiscall CHANGEABLE_SPIN_ITEM::QuerySmallIncValue(void)const 
?QuerySmallIncValue@CHANGEABLE_SPIN_ITEM@@UBEKXZ
; public: virtual unsigned long __thiscall SPIN_SLE_VALID_SECOND::QuerySmallIncValue(void)const 
?QuerySmallIncValue@SPIN_SLE_VALID_SECOND@@UBEKXZ
; protected: class NT_GROUP_BROWSER_DIALOG * __thiscall NT_GROUP_BROWSER_DIALOG::QuerySourceDialog(void)
?QuerySourceDialog@NT_GROUP_BROWSER_DIALOG@@IAEPAV1@XZ
; public: class USER_BROWSER_LB * __thiscall NT_FIND_ACCOUNT_DIALOG::QuerySourceListbox(void)
?QuerySourceListbox@NT_FIND_ACCOUNT_DIALOG@@QAEPAVUSER_BROWSER_LB@@XZ
; public: class USER_BROWSER_LB * __thiscall NT_GROUP_BROWSER_DIALOG::QuerySourceListbox(void)
?QuerySourceListbox@NT_GROUP_BROWSER_DIALOG@@QAEPAVUSER_BROWSER_LB@@XZ
; protected: unsigned int __thiscall STATE_BUTTON_CONTROL::QueryState(void)const 
?QueryState@STATE_BUTTON_CONTROL@@IBEIXZ
; public: int __thiscall STLBITEM::QueryState(void)const 
?QueryState@STLBITEM@@QBEHXZ
; private: enum _THREAD_STATE  __thiscall WIN32_THREAD::QueryState(void)const 
?QueryState@WIN32_THREAD@@ABE?AW4_THREAD_STATE@@XZ
; protected: static unsigned short const * __stdcall CONTROL_WINDOW::QueryStaticClassName(void)
?QueryStaticClassName@CONTROL_WINDOW@@KGPBGXZ
; public: class STRING_LISTBOX * __thiscall SLE_STRLB_GROUP::QueryStrLB(void)const 
?QueryStrLB@SLE_STRLB_GROUP@@QBEPAVSTRING_LISTBOX@@XZ
; protected: virtual int __thiscall CONSOLE_ELLIPSIS::QueryStrLen(unsigned short const *,int)
?QueryStrLen@CONSOLE_ELLIPSIS@@MAEHPBGH@Z
; protected: virtual int __thiscall CONSOLE_ELLIPSIS::QueryStrLen(class NLS_STR)
?QueryStrLen@CONSOLE_ELLIPSIS@@MAEHVNLS_STR@@@Z
; protected: virtual int __thiscall WIN_ELLIPSIS::QueryStrLen(unsigned short const *,int)
?QueryStrLen@WIN_ELLIPSIS@@MAEHPBGH@Z
; protected: virtual int __thiscall WIN_ELLIPSIS::QueryStrLen(class NLS_STR)
?QueryStrLen@WIN_ELLIPSIS@@MAEHVNLS_STR@@@Z
; private: long __thiscall SPIN_SLE_STR::QueryStrNum(class NLS_STR const &,long)
?QueryStrNum@SPIN_SLE_STR@@AAEJABVNLS_STR@@J@Z
; public: long __thiscall ATOM_BASE::QueryString(unsigned short *,unsigned int)const 
?QueryString@ATOM_BASE@@QBEJPAGI@Z
; public: class NLS_STR * __thiscall STRING_BITSET_PAIR::QueryString(void)
?QueryString@STRING_BITSET_PAIR@@QAEPAVNLS_STR@@XZ
; public: enum ELLIPSIS_STYLE  __thiscall BASE_ELLIPSIS::QueryStyle(void)const 
?QueryStyle@BASE_ELLIPSIS@@QBE?AW4ELLIPSIS_STYLE@@XZ
; public: unsigned long __thiscall WINDOW::QueryStyle(void)const 
?QueryStyle@WINDOW@@QBEKXZ
; public: struct HMENU__ * __thiscall MENU_BASE::QuerySubMenu(int)const 
?QuerySubMenu@MENU_BASE@@QBEPAUHMENU__@@H@Z
; public: unsigned int __thiscall SET_OF_AUDIT_CATEGORIES::QuerySuccessBaseCID(void)
?QuerySuccessBaseCID@SET_OF_AUDIT_CATEGORIES@@QAEIXZ
; protected: unsigned long __thiscall BASE_SET_FOCUS_DLG::QuerySuppliedHelpContext(void)
?QuerySuppliedHelpContext@BASE_SET_FOCUS_DLG@@IAEKXZ
; protected: unsigned short const * __thiscall BASE_SET_FOCUS_DLG::QuerySuppliedHelpFile(void)
?QuerySuppliedHelpFile@BASE_SET_FOCUS_DLG@@IAEPBGXZ
; public: long __thiscall BASE_ELLIPSIS::QueryText(unsigned short *,unsigned int)const 
?QueryText@BASE_ELLIPSIS@@QBEJPAGI@Z
; public: long __thiscall BASE_ELLIPSIS::QueryText(class NLS_STR *)const 
?QueryText@BASE_ELLIPSIS@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall SLE_STRIP::QueryText(unsigned short *,unsigned int,unsigned short const *,unsigned short const *)const 
?QueryText@SLE_STRIP@@QBEJPAGIPBG1@Z
; public: long __thiscall SLE_STRIP::QueryText(class NLS_STR *,unsigned short const *,unsigned short const *)const 
?QueryText@SLE_STRIP@@QBEJPAVNLS_STR@@PBG1@Z
; public: long __thiscall SLT_ELLIPSIS::QueryText(unsigned short *,unsigned int)const 
?QueryText@SLT_ELLIPSIS@@QBEJPAGI@Z
; public: long __thiscall SLT_ELLIPSIS::QueryText(class NLS_STR *)const 
?QueryText@SLT_ELLIPSIS@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall WINDOW::QueryText(unsigned short *,unsigned int)const 
?QueryText@WINDOW@@QBEJPAGI@Z
; public: long __thiscall WINDOW::QueryText(class NLS_STR *)const 
?QueryText@WINDOW@@QBEJPAVNLS_STR@@@Z
; public: class XYDIMENSION  __thiscall DEVICE_CONTEXT::QueryTextExtent(class NLS_STR const &)const 
?QueryTextExtent@DEVICE_CONTEXT@@QBE?AVXYDIMENSION@@ABVNLS_STR@@@Z
; public: class XYDIMENSION  __thiscall DEVICE_CONTEXT::QueryTextExtent(unsigned short const *,unsigned int)const 
?QueryTextExtent@DEVICE_CONTEXT@@QBE?AVXYDIMENSION@@PBGI@Z
; public: int __thiscall BASE_ELLIPSIS::QueryTextLength(void)const 
?QueryTextLength@BASE_ELLIPSIS@@QBEHXZ
; public: unsigned int __thiscall NLS_STR::QueryTextLength(void)const 
?QueryTextLength@NLS_STR@@QBEIXZ
; public: int __thiscall WINDOW::QueryTextLength(void)const 
?QueryTextLength@WINDOW@@QBEHXZ
; public: int __thiscall DEVICE_CONTEXT::QueryTextMetrics(struct tagTEXTMETRICW *)const 
?QueryTextMetrics@DEVICE_CONTEXT@@QBEHPAUtagTEXTMETRICW@@@Z
; public: int __thiscall BASE_ELLIPSIS::QueryTextSize(void)const 
?QueryTextSize@BASE_ELLIPSIS@@QBEHXZ
; public: int __thiscall WINDOW::QueryTextSize(void)const 
?QueryTextSize@WINDOW@@QBEHXZ
; public: int __thiscall DISPLAY_CONTEXT::QueryTextWidth(class NLS_STR const &)const 
?QueryTextWidth@DISPLAY_CONTEXT@@QBEHABVNLS_STR@@@Z
; public: int __thiscall DISPLAY_CONTEXT::QueryTextWidth(unsigned short const *,unsigned int)const 
?QueryTextWidth@DISPLAY_CONTEXT@@QBEHPBGI@Z
; public: int __thiscall XYRECT::QueryTop(void)const 
?QueryTop@XYRECT@@QBEHXZ
; public: int __thiscall LIST_CONTROL::QueryTopIndex(void)const 
?QueryTopIndex@LIST_CONTROL@@QBEHXZ
; public: enum _SID_NAME_USE  __thiscall BROWSER_SUBJECT::QueryType(void)const 
?QueryType@BROWSER_SUBJECT@@QBE?AW4_SID_NAME_USE@@XZ
; public: enum OUTLINE_LB_LEVEL  __thiscall OLLB_ENTRY::QueryType(void)const 
?QueryType@OLLB_ENTRY@@QBE?AW4OUTLINE_LB_LEVEL@@XZ
; public: enum _SID_NAME_USE  __thiscall USER_BROWSER_LBI::QueryType(void)const 
?QueryType@USER_BROWSER_LBI@@QBE?AW4_SID_NAME_USE@@XZ
; public: enum UI_SystemSid  __thiscall USER_BROWSER_LBI::QueryUISysSid(void)const 
?QueryUISysSid@USER_BROWSER_LBI@@QBE?AW4UI_SystemSid@@XZ
; protected: struct _ULC_ENTRY * __thiscall USER_LBI_CACHE::QueryULCEntryPtr(int)
?QueryULCEntryPtr@USER_LBI_CACHE@@IAEPAU_ULC_ENTRY@@H@Z
; protected: int __thiscall USER_LBI_CACHE::QueryULCEntrySize(void)
?QueryULCEntrySize@USER_LBI_CACHE@@IAEHXZ
; public: struct _UNICODE_STRING const * __thiscall NT_GROUP_ENUM_OBJ::QueryUnicodeComment(void)const 
?QueryUnicodeComment@NT_GROUP_ENUM_OBJ@@QBEPBU_UNICODE_STRING@@XZ
; public: struct _UNICODE_STRING const * __thiscall NT_GROUP_ENUM_OBJ::QueryUnicodeGroup(void)const 
?QueryUnicodeGroup@NT_GROUP_ENUM_OBJ@@QBEPBU_UNICODE_STRING@@XZ
; public: struct _UNICODE_STRING const * __thiscall LSA_PRIMARY_DOM_INFO_MEM::QueryUnicodeName(void)const 
?QueryUnicodeName@LSA_PRIMARY_DOM_INFO_MEM@@QBEPBU_UNICODE_STRING@@XZ
; private: struct _UNICODE_STRING const * __thiscall LSA_REF_DOMAIN_MEM::QueryUnicodeName(unsigned long)const 
?QueryUnicodeName@LSA_REF_DOMAIN_MEM@@ABEPBU_UNICODE_STRING@@K@Z
; private: struct _UNICODE_STRING const * __thiscall LSA_TRANSLATED_NAME_MEM::QueryUnicodeName(unsigned long)const 
?QueryUnicodeName@LSA_TRANSLATED_NAME_MEM@@ABEPBU_UNICODE_STRING@@K@Z
; public: struct _UNICODE_STRING const * __thiscall LSA_TRUST_INFO_MEM::QueryUnicodeName(unsigned long)const 
?QueryUnicodeName@LSA_TRUST_INFO_MEM@@QBEPBU_UNICODE_STRING@@K@Z
; public: struct _UNICODE_STRING const * __thiscall SAM_RID_ENUMERATION_MEM::QueryUnicodeName(unsigned long)const 
?QueryUnicodeName@SAM_RID_ENUMERATION_MEM@@QBEPBU_UNICODE_STRING@@K@Z
; public: enum _SID_NAME_USE  __thiscall LSA_TRANSLATED_NAME_MEM::QueryUse(unsigned long)const 
?QueryUse@LSA_TRANSLATED_NAME_MEM@@QBE?AW4_SID_NAME_USE@@K@Z
; public: enum _SID_NAME_USE  __thiscall LSA_TRANSLATED_SID_MEM::QueryUse(unsigned long)const 
?QueryUse@LSA_TRANSLATED_SID_MEM@@QBE?AW4_SID_NAME_USE@@K@Z
; public: unsigned long __thiscall USER_BROWSER_LBI::QueryUserAccountFlags(void)const 
?QueryUserAccountFlags@USER_BROWSER_LBI@@QBEKXZ
; protected: class NT_USER_BROWSER_DIALOG * __thiscall NT_GROUP_BROWSER_DIALOG::QueryUserBrowserDialog(void)
?QueryUserBrowserDialog@NT_GROUP_BROWSER_DIALOG@@IAEPAVNT_USER_BROWSER_DIALOG@@XZ
; public: unsigned short const * __thiscall OPEN_LBI_BASE::QueryUserName(void)const 
?QueryUserName@OPEN_LBI_BASE@@QBEPBGXZ
; public: long __thiscall SET_OF_AUDIT_CATEGORIES::QueryUserSelectedBits(class BITFIELD *,class BITFIELD *)
?QueryUserSelectedBits@SET_OF_AUDIT_CATEGORIES@@QAEJPAVBITFIELD@@0@Z
; public: unsigned int __thiscall VKEY_EVENT::QueryVKey(void)const 
?QueryVKey@VKEY_EVENT@@QBEIXZ
; public: unsigned long __thiscall CHANGEABLE_SPIN_ITEM::QueryValue(void)const 
?QueryValue@CHANGEABLE_SPIN_ITEM@@QBEKXZ
; public: static unsigned int __stdcall METALLIC_STR_DTE::QueryVerticalMargins(void)
?QueryVerticalMargins@METALLIC_STR_DTE@@SGIXZ
; public: unsigned int __thiscall EVENT::QueryWParam(void)const 
?QueryWParam@EVENT@@QBEIXZ
; public: static unsigned short const * __stdcall SLE_STRIP::QueryWhiteSpace(void)
?QueryWhiteSpace@SLE_STRIP@@SGPBGXZ
; public: unsigned int __thiscall BIT_MAP::QueryWidth(void)const 
?QueryWidth@BIT_MAP@@QBEIXZ
; public: unsigned int __thiscall DISPLAY_MAP::QueryWidth(void)const 
?QueryWidth@DISPLAY_MAP@@QBEIXZ
; public: unsigned int __thiscall SIZE_EVENT::QueryWidth(void)const 
?QueryWidth@SIZE_EVENT@@QBEIXZ
; public: unsigned int __thiscall XYDIMENSION::QueryWidth(void)const 
?QueryWidth@XYDIMENSION@@QBEIXZ
; public: void __thiscall WINDOW::QueryWindowRect(struct tagRECT *)const 
?QueryWindowRect@WINDOW@@QBEXPAUtagRECT@@@Z
; public: void __thiscall WINDOW::QueryWindowRect(class XYRECT *)const 
?QueryWindowRect@WINDOW@@QBEXPAVXYRECT@@@Z
; public: int __thiscall CHANGEABLE_SPIN_ITEM::QueryWrap(void)const 
?QueryWrap@CHANGEABLE_SPIN_ITEM@@QBEHXZ
; public: int __thiscall XYPOINT::QueryX(void)const 
?QueryX@XYPOINT@@QBEHXZ
; public: unsigned int __thiscall LOGON_HOURS_CONTROL::QueryXForRow(int)
?QueryXForRow@LOGON_HOURS_CONTROL@@QAEIH@Z
; public: int __thiscall XYPOINT::QueryY(void)const 
?QueryY@XYPOINT@@QBEHXZ
; public: int __thiscall BLT_DATE_SPIN_GROUP::QueryYear(void)const 
?QueryYear@BLT_DATE_SPIN_GROUP@@QBEHXZ
; public: int __thiscall WIN_TIME::QueryYear(void)const 
?QueryYear@WIN_TIME@@QBEHXZ
; public: int __thiscall INTL_PROFILE::QueryYearPos(void)const 
?QueryYearPos@INTL_PROFILE@@QBEHXZ
; protected: virtual enum FOCUS_CACHE_SETTING  __thiscall BASE_SET_FOCUS_DLG::ReadFocusCache(unsigned short const *)const 
?ReadFocusCache@BASE_SET_FOCUS_DLG@@MBE?AW4FOCUS_CACHE_SETTING@@PBG@Z
; public: long __thiscall USER_LBI_CACHE::ReadUsers(class ADMIN_AUTHORITY *,unsigned int,unsigned int,int,int *)
?ReadUsers@USER_LBI_CACHE@@QAEJPAVADMIN_AUTHORITY@@IIHPAH@Z
; public: long __thiscall DEVICE_COMBO::Refresh(void)
?Refresh@DEVICE_COMBO@@QAEJXZ
; protected: void __thiscall OPEN_DIALOG_BASE::Refresh(void)
?Refresh@OPEN_DIALOG_BASE@@IAEXXZ
; public: long __thiscall OPEN_LBOX_BASE::Refresh(void)
?Refresh@OPEN_LBOX_BASE@@QAEJXZ
; protected: virtual void __thiscall HIER_LISTBOX::RefreshChildren(class HIER_LBI *)
?RefreshChildren@HIER_LISTBOX@@MAEXPAVHIER_LBI@@@Z
; public: virtual void __thiscall UI_EXT_MGR::RefreshExtensions(struct HWND__ *)
?RefreshExtensions@UI_EXT_MGR@@UAEXPAUHWND__@@@Z
; public: static long __stdcall BLT::RegisterHelpFile(struct HINSTANCE__ *,long,unsigned long,unsigned long)
?RegisterHelpFile@BLT@@SGJPAUHINSTANCE__@@JKK@Z
; public: long __thiscall WIN32_MUTEX::Release(void)
?Release@WIN32_MUTEX@@QAEJXZ
; public: long __thiscall WIN32_SEMAPHORE::Release(long,long *)
?Release@WIN32_SEMAPHORE@@QAEJJPAJ@Z
; private: virtual void __thiscall BLT_LISTBOX::ReleaseLBI(class LBI *)
?ReleaseLBI@BLT_LISTBOX@@EAEXPAVLBI@@@Z
; private: virtual void __thiscall LAZY_LISTBOX::ReleaseLBI(class LBI *)
?ReleaseLBI@LAZY_LISTBOX@@EAEXPAVLBI@@@Z
; public: void __thiscall CLIENT_WINDOW::ReleaseMouse(void)
?ReleaseMouse@CLIENT_WINDOW@@QAEXXZ
; public: void __thiscall DISPATCHER::ReleaseMouse(void)
?ReleaseMouse@DISPATCHER@@QAEXXZ
; public: virtual long __thiscall LB_COL_WIDTHS::ReloadColumnWidths(struct HWND__ *,struct HINSTANCE__ *,class IDRESOURCE const &)
?ReloadColumnWidths@LB_COL_WIDTHS@@UAEJPAUHWND__@@PAUHINSTANCE__@@ABVIDRESOURCE@@@Z
; public: int __thiscall ARRAY_LIST_CONTROLVAL_CID_PAIR::Remove(class CONTROLVAL_CID_PAIR const &)
?Remove@ARRAY_LIST_CONTROLVAL_CID_PAIR@@QAEHABVCONTROLVAL_CID_PAIR@@@Z
; public: static void __stdcall HWND_DLGPTR_CACHE::Remove(struct HWND__ *)
?Remove@HWND_DLGPTR_CACHE@@SGXPAUHWND__@@@Z
; public: long __thiscall MENU_BASE::Remove(unsigned int,unsigned int)const 
?Remove@MENU_BASE@@QBEJII@Z
; public: class ASSOCHCFILE * __thiscall SLIST_OF_ASSOCHCFILE::Remove(class ITER_SL_ASSOCHCFILE &)
?Remove@SLIST_OF_ASSOCHCFILE@@QAEPAVASSOCHCFILE@@AAVITER_SL_ASSOCHCFILE@@@Z
; public: struct CLIENTDATA * __thiscall SLIST_OF_CLIENTDATA::Remove(class ITER_SL_CLIENTDATA &)
?Remove@SLIST_OF_CLIENTDATA@@QAEPAUCLIENTDATA@@AAVITER_SL_CLIENTDATA@@@Z
; public: class NLS_STR * __thiscall SLIST_OF_NLS_STR::Remove(class ITER_SL_NLS_STR &)
?Remove@SLIST_OF_NLS_STR@@QAEPAVNLS_STR@@AAVITER_SL_NLS_STR@@@Z
; public: class TIMER_BASE * __thiscall SLIST_OF_TIMER_BASE::Remove(class ITER_SL_TIMER_BASE &)
?Remove@SLIST_OF_TIMER_BASE@@QAEPAVTIMER_BASE@@AAVITER_SL_TIMER_BASE@@@Z
; public: class USER_BROWSER_LBI * __thiscall SLIST_OF_USER_BROWSER_LBI::Remove(class ITER_SL_USER_BROWSER_LBI &)
?Remove@SLIST_OF_USER_BROWSER_LBI@@QAEPAVUSER_BROWSER_LBI@@AAVITER_SL_USER_BROWSER_LBI@@@Z
; public: void __thiscall BLT_LISTBOX::RemoveAllItems(void)
?RemoveAllItems@BLT_LISTBOX@@QAEXXZ
; public: static void __stdcall BLTIMP::RemoveClient(struct HINSTANCE__ *)
?RemoveClient@BLTIMP@@SGXPAUHINSTANCE__@@@Z
; public: int __thiscall CONTROL_TABLE::RemoveControl(class CONTROL_WINDOW *)
?RemoveControl@CONTROL_TABLE@@QAEHPAVCONTROL_WINDOW@@@Z
; protected: void __thiscall ACCOUNT_NAMES_MLE::RemoveDuplicateAccountNames(class STRLIST *)
?RemoveDuplicateAccountNames@ACCOUNT_NAMES_MLE@@IAEXPAVSTRLIST@@@Z
; public: static void __stdcall BLTIMP::RemoveHelpAssoc(struct HINSTANCE__ *,unsigned long)
?RemoveHelpAssoc@BLTIMP@@SGXPAUHINSTANCE__@@K@Z
; public: class LBI * __thiscall BLT_LISTBOX::RemoveItem(int)
?RemoveItem@BLT_LISTBOX@@QAEPAVLBI@@H@Z
; public: class LBI * __thiscall USER_BROWSER_LB::RemoveItem(int)
?RemoveItem@USER_BROWSER_LB@@QAEPAVLBI@@H@Z
; public: virtual class LBI * __thiscall USER_BROWSER_LBI_CACHE::RemoveItem(int)
?RemoveItem@USER_BROWSER_LBI_CACHE@@UAEPAVLBI@@H@Z
; public: virtual class LBI * __thiscall USER_LBI_CACHE::RemoveItem(int)
?RemoveItem@USER_LBI_CACHE@@UAEPAVLBI@@H@Z
; public: void __thiscall LIST_CONTROL::RemoveSelection(void)
?RemoveSelection@LIST_CONTROL@@QAEXXZ
; public: void __thiscall BLT_MASTER_TIMER::RemoveTimer(class TIMER_BASE *)
?RemoveTimer@BLT_MASTER_TIMER@@QAEXPAVTIMER_BASE@@@Z
; public: class LBI * __thiscall LBI_HEAP::RemoveTopItem(void)
?RemoveTopItem@LBI_HEAP@@QAEPAVLBI@@XZ
; public: void __thiscall WINDOW::RepaintNow(void)
?RepaintNow@WINDOW@@QAEXXZ
; protected: long __thiscall ACCOUNT_NAMES_MLE::ReplaceDomainIfBuiltIn(class NLS_STR *,int *)
?ReplaceDomainIfBuiltIn@ACCOUNT_NAMES_MLE@@IAEJPAVNLS_STR@@PAH@Z
; public: long __thiscall BLT_LISTBOX::ReplaceItem(int,class LBI *,class LBI * *)
?ReplaceItem@BLT_LISTBOX@@QAEJHPAVLBI@@PAPAV2@@Z
; protected: void __thiscall BASE::ReportError(long)
?ReportError@BASE@@IAEXJ@Z
; protected: void __thiscall CONTROL_TABLE::ReportError(void)
?ReportError@CONTROL_TABLE@@IAEXXZ
; protected: void __thiscall CONTROL_WINDOW::ReportError(long)
?ReportError@CONTROL_WINDOW@@IAEXJ@Z
; protected: void __thiscall FORWARDING_BASE::ReportError(long)
?ReportError@FORWARDING_BASE@@IAEXJ@Z
; protected: void __thiscall SLT_ELLIPSIS::ReportError(long)
?ReportError@SLT_ELLIPSIS@@IAEXJ@Z
; public: long __thiscall BROWSER_DOMAIN::RequestAccountData(void)
?RequestAccountData@BROWSER_DOMAIN@@QAEJXZ
; public: long __thiscall DOMAIN_FILL_THREAD::RequestAccountData(void)
?RequestAccountData@DOMAIN_FILL_THREAD@@QAEJXZ
; public: long __thiscall BROWSER_DOMAIN::RequestAndWaitForUsers(void)
?RequestAndWaitForUsers@BROWSER_DOMAIN@@QAEJXZ
; public: long __thiscall DOMAIN_FILL_THREAD::RequestAndWaitForUsers(void)
?RequestAndWaitForUsers@DOMAIN_FILL_THREAD@@QAEJXZ
; private: virtual class LBI * __thiscall BLT_LISTBOX::RequestLBI(struct tagDRAWITEMSTRUCT const *)
?RequestLBI@BLT_LISTBOX@@EAEPAVLBI@@PBUtagDRAWITEMSTRUCT@@@Z
; private: virtual class LBI * __thiscall LAZY_LISTBOX::RequestLBI(struct tagDRAWITEMSTRUCT const *)
?RequestLBI@LAZY_LISTBOX@@EAEPAVLBI@@PBUtagDRAWITEMSTRUCT@@@Z
; public: void __thiscall BROWSE_DOMAIN_ENUM::Reset(void)
?Reset@BROWSE_DOMAIN_ENUM@@QAEXXZ
; public: void __thiscall ITER_CTRL::Reset(void)
?Reset@ITER_CTRL@@QAEXXZ
; public: long __thiscall WIN32_EVENT::Reset(void)
?Reset@WIN32_EVENT@@QAEJXZ
; public: static void __stdcall POPUP::ResetCaption(void)
?ResetCaption@POPUP@@SGXXZ
; protected: void __thiscall WINDOW::ResetCreator(void)
?ResetCreator@WINDOW@@IAEXXZ
; protected: void __thiscall BASE::ResetError(void)
?ResetError@BASE@@IAEXXZ
; protected: void __thiscall CONTROL_WINDOW::ResetError(void)
?ResetError@CONTROL_WINDOW@@IAEXXZ
; protected: void __thiscall FORWARDING_BASE::ResetError(void)
?ResetError@FORWARDING_BASE@@IAEXXZ
; protected: void __thiscall SLT_ELLIPSIS::ResetError(void)
?ResetError@SLT_ELLIPSIS@@IAEXXZ
; public: void __thiscall BLT_MASTER_TIMER::ResetIterator(void)
?ResetIterator@BLT_MASTER_TIMER@@QAEXXZ
; public: void __thiscall SLT_ELLIPSIS::ResetStyle(enum ELLIPSIS_STYLE)
?ResetStyle@SLT_ELLIPSIS@@QAEXW4ELLIPSIS_STYLE@@@Z
; public: int __thiscall ARRAY_CONTROLVAL_CID_PAIR::Resize(unsigned int,int)
?Resize@ARRAY_CONTROLVAL_CID_PAIR@@QAEHIH@Z
; public: long __thiscall BLT_LISTBOX::Resort(void)
?Resort@BLT_LISTBOX@@QAEJXZ
; protected: virtual void __thiscall BLT_DATE_SPIN_GROUP::RestoreValue(int)
?RestoreValue@BLT_DATE_SPIN_GROUP@@MAEXH@Z
; protected: virtual void __thiscall BLT_TIME_SPIN_GROUP::RestoreValue(int)
?RestoreValue@BLT_TIME_SPIN_GROUP@@MAEXH@Z
; protected: virtual void __thiscall COMBOBOX::RestoreValue(int)
?RestoreValue@COMBOBOX@@MAEXH@Z
; protected: virtual void __thiscall CONTROL_VALUE::RestoreValue(int)
?RestoreValue@CONTROL_VALUE@@MAEXH@Z
; protected: virtual void __thiscall EDIT_CONTROL::RestoreValue(int)
?RestoreValue@EDIT_CONTROL@@MAEXH@Z
; protected: virtual void __thiscall LIST_CONTROL::RestoreValue(int)
?RestoreValue@LIST_CONTROL@@MAEXH@Z
; protected: virtual void __thiscall MAGIC_GROUP::RestoreValue(int)
?RestoreValue@MAGIC_GROUP@@MAEXH@Z
; protected: virtual void __thiscall RADIO_GROUP::RestoreValue(int)
?RestoreValue@RADIO_GROUP@@MAEXH@Z
; protected: virtual void __thiscall SLT::RestoreValue(int)
?RestoreValue@SLT@@MAEXH@Z
; public: virtual void __thiscall SPIN_GROUP::RestoreValue(int)
?RestoreValue@SPIN_GROUP@@UAEXH@Z
; protected: virtual void __thiscall STATE_BUTTON_CONTROL::RestoreValue(int)
?RestoreValue@STATE_BUTTON_CONTROL@@MAEXH@Z
; public: long __thiscall WIN32_THREAD::Resume(void)
?Resume@WIN32_THREAD@@QAEJXZ
; protected: virtual int __thiscall APPLICATION::Run(void)
?Run@APPLICATION@@MAEHXZ
; protected: unsigned int __thiscall HAS_MESSAGE_PUMP::RunMessagePump(void)
?RunMessagePump@HAS_MESSAGE_PUMP@@IAEIXZ
; public: virtual long __thiscall CHANGEABLE_SPIN_ITEM::SaveCurrentData(void)
?SaveCurrentData@CHANGEABLE_SPIN_ITEM@@UAEJXZ
; public: virtual long __thiscall SPIN_SLE_NUM::SaveCurrentData(void)
?SaveCurrentData@SPIN_SLE_NUM@@UAEJXZ
; public: virtual long __thiscall SPIN_SLE_STR::SaveCurrentData(void)
?SaveCurrentData@SPIN_SLE_STR@@UAEJXZ
; protected: virtual void __thiscall BLT_DATE_SPIN_GROUP::SaveValue(int)
?SaveValue@BLT_DATE_SPIN_GROUP@@MAEXH@Z
; protected: virtual void __thiscall BLT_TIME_SPIN_GROUP::SaveValue(int)
?SaveValue@BLT_TIME_SPIN_GROUP@@MAEXH@Z
; protected: virtual void __thiscall COMBOBOX::SaveValue(int)
?SaveValue@COMBOBOX@@MAEXH@Z
; protected: virtual void __thiscall CONTROL_VALUE::SaveValue(int)
?SaveValue@CONTROL_VALUE@@MAEXH@Z
; protected: virtual void __thiscall EDIT_CONTROL::SaveValue(int)
?SaveValue@EDIT_CONTROL@@MAEXH@Z
; protected: virtual void __thiscall LIST_CONTROL::SaveValue(int)
?SaveValue@LIST_CONTROL@@MAEXH@Z
; protected: virtual void __thiscall MAGIC_GROUP::SaveValue(int)
?SaveValue@MAGIC_GROUP@@MAEXH@Z
; protected: virtual void __thiscall RADIO_GROUP::SaveValue(int)
?SaveValue@RADIO_GROUP@@MAEXH@Z
; protected: virtual void __thiscall SLT::SaveValue(int)
?SaveValue@SLT@@MAEXH@Z
; public: virtual void __thiscall SPIN_GROUP::SaveValue(int)
?SaveValue@SPIN_GROUP@@UAEXH@Z
; protected: virtual void __thiscall STATE_BUTTON_CONTROL::SaveValue(int)
?SaveValue@STATE_BUTTON_CONTROL@@MAEXH@Z
; public: void __thiscall XYPOINT::ScreenToClient(struct HWND__ *)
?ScreenToClient@XYPOINT@@QAEXPAUHWND__@@@Z
; public: struct HBITMAP__ * __thiscall DEVICE_CONTEXT::SelectBitmap(struct HBITMAP__ *)
?SelectBitmap@DEVICE_CONTEXT@@QAEPAUHBITMAP__@@PAU2@@Z
; public: struct HBRUSH__ * __thiscall DEVICE_CONTEXT::SelectBrush(struct HBRUSH__ *)
?SelectBrush@DEVICE_CONTEXT@@QAEPAUHBRUSH__@@PAU2@@Z
; public: struct HFONT__ * __thiscall DEVICE_CONTEXT::SelectFont(struct HFONT__ *)
?SelectFont@DEVICE_CONTEXT@@QAEPAUHFONT__@@PAU2@@Z
; public: void __thiscall BROWSER_DOMAIN_CB::SelectItem(class BROWSER_DOMAIN *)
?SelectItem@BROWSER_DOMAIN_CB@@QAEXPAVBROWSER_DOMAIN@@@Z
; public: void __thiscall LIST_CONTROL::SelectItem(int,int)
?SelectItem@LIST_CONTROL@@QAEXHH@Z
; public: void __thiscall LIST_CONTROL::SelectItems(int *,int,int)
?SelectItems@LIST_CONTROL@@QAEXPAHHH@Z
; private: void __thiscall BASE_SET_FOCUS_DLG::SelectNetPathString(void)
?SelectNetPathString@BASE_SET_FOCUS_DLG@@AAEXXZ
; protected: void * __thiscall DEVICE_CONTEXT::SelectObject(void *)
?SelectObject@DEVICE_CONTEXT@@IAEPAXPAX@Z
; public: struct HPEN__ * __thiscall DEVICE_CONTEXT::SelectPen(struct HPEN__ *)
?SelectPen@DEVICE_CONTEXT@@QAEPAUHPEN__@@PAU2@@Z
; public: void __thiscall COMBOBOX::SelectString(void)
?SelectString@COMBOBOX@@QAEXXZ
; public: void __thiscall EDIT_CONTROL::SelectString(void)
?SelectString@EDIT_CONTROL@@QAEXXZ
; public: long __thiscall EVENT::SendTo(struct HWND__ *)const 
?SendTo@EVENT@@QBEJPAUHWND__@@@Z
; public: static struct HICON__ * __stdcall CURSOR::Set(struct HICON__ *)
?Set@CURSOR@@SGPAUHICON__@@PAU2@@Z
; public: long __thiscall WIN32_EVENT::Set(void)
?Set@WIN32_EVENT@@QAEJXZ
; public: long __thiscall SPIN_ITEM::SetAccKey(class NLS_STR const &)
?SetAccKey@SPIN_ITEM@@QAEJABVNLS_STR@@@Z
; public: long __thiscall SPIN_ITEM::SetAccKey(long)
?SetAccKey@SPIN_ITEM@@QAEJJ@Z
; public: long __thiscall NT_USER_BROWSER_DIALOG::SetAndFillErrorText(long,int)
?SetAndFillErrorText@NT_USER_BROWSER_DIALOG@@QAEJJH@Z
; protected: void __thiscall SPIN_GROUP::SetArrowButtonStatus(void)
?SetArrowButtonStatus@SPIN_GROUP@@IAEXXZ
; public: long __thiscall BROWSER_DOMAIN::SetAsTargetDomain(void)
?SetAsTargetDomain@BROWSER_DOMAIN@@QAEJXZ
; protected: void __thiscall HEAP_BASE::SetAutoReadjust(int)
?SetAutoReadjust@HEAP_BASE@@IAEXH@Z
; public: void __thiscall CHANGEABLE_SPIN_ITEM::SetBigDecValue(unsigned long)
?SetBigDecValue@CHANGEABLE_SPIN_ITEM@@QAEXK@Z
; public: void __thiscall CHANGEABLE_SPIN_ITEM::SetBigIncValue(unsigned long)
?SetBigIncValue@CHANGEABLE_SPIN_ITEM@@QAEXK@Z
; public: void __thiscall BIT_MAP::SetBitmap(struct HBITMAP__ *)
?SetBitmap@BIT_MAP@@QAEXPAUHBITMAP__@@@Z
; private: void __thiscall DISPLAY_MAP::SetBitmapBits(unsigned char *,int,int,unsigned int)
?SetBitmapBits@DISPLAY_MAP@@AAEXPAEHHI@Z
; public: unsigned long __thiscall DEVICE_CONTEXT::SetBkColor(unsigned long)
?SetBkColor@DEVICE_CONTEXT@@QAEKK@Z
; public: int __thiscall DEVICE_CONTEXT::SetBkMode(int)
?SetBkMode@DEVICE_CONTEXT@@QAEHH@Z
; protected: long __thiscall GET_FNAME_BASE_DLG::SetBuffer(class BUFFER *,class STRLIST &)
?SetBuffer@GET_FNAME_BASE_DLG@@IAEJPAVBUFFER@@AAVSTRLIST@@@Z
; protected: void __thiscall ENUM_OBJ_BASE::SetBufferPtr(unsigned char const *)
?SetBufferPtr@ENUM_OBJ_BASE@@IAEXPBE@Z
; public: void __thiscall ORDER_GROUP::SetButton(void)
?SetButton@ORDER_GROUP@@QAEXXZ
; public: static void __stdcall POPUP::SetCaption(long)
?SetCaption@POPUP@@SGXJ@Z
; public: void __thiscall LIST_CONTROL::SetCaretIndex(int,int)
?SetCaretIndex@LIST_CONTROL@@QAEXHH@Z
; public: void __thiscall MENUITEM::SetCheck(int)
?SetCheck@MENUITEM@@QAEXH@Z
; private: void __thiscall RADIO_BUTTON::SetCheck(int)
?SetCheck@RADIO_BUTTON@@AAEXH@Z
; public: void __thiscall STATE2_BUTTON_CONTROL::SetCheck(int)
?SetCheck@STATE2_BUTTON_CONTROL@@QAEXH@Z
; public: long __thiscall SET_OF_AUDIT_CATEGORIES::SetCheckBoxNames(class MASK_MAP *)
?SetCheckBoxNames@SET_OF_AUDIT_CATEGORIES@@QAEJPAVMASK_MAP@@@Z
; protected: static void __stdcall WINDOW::SetClientGeneratedMsgFlag(int)
?SetClientGeneratedMsgFlag@WINDOW@@KGXH@Z
; public: void __thiscall METER::SetComplete(int)
?SetComplete@METER@@QAEXH@Z
; protected: virtual void __thiscall BLT_DATE_SPIN_GROUP::SetControlValueFocus(void)
?SetControlValueFocus@BLT_DATE_SPIN_GROUP@@MAEXXZ
; protected: virtual void __thiscall BLT_TIME_SPIN_GROUP::SetControlValueFocus(void)
?SetControlValueFocus@BLT_TIME_SPIN_GROUP@@MAEXXZ
; public: virtual void __thiscall CONTROL_VALUE::SetControlValueFocus(void)
?SetControlValueFocus@CONTROL_VALUE@@UAEXXZ
; public: virtual void __thiscall CONTROL_WINDOW::SetControlValueFocus(void)
?SetControlValueFocus@CONTROL_WINDOW@@UAEXXZ
; protected: virtual void __thiscall EDIT_CONTROL::SetControlValueFocus(void)
?SetControlValueFocus@EDIT_CONTROL@@MAEXXZ
; public: virtual void __thiscall MAGIC_GROUP::SetControlValueFocus(void)
?SetControlValueFocus@MAGIC_GROUP@@UAEXXZ
; public: virtual void __thiscall RADIO_GROUP::SetControlValueFocus(void)
?SetControlValueFocus@RADIO_GROUP@@UAEXXZ
; public: virtual void __thiscall SPIN_GROUP::SetControlValueFocus(void)
?SetControlValueFocus@SPIN_GROUP@@UAEXXZ
; public: void __thiscall LAZY_LISTBOX::SetCount(unsigned int)
?SetCount@LAZY_LISTBOX@@QAEXI@Z
; public: void __thiscall USER_BROWSER_LB::SetCurrentCache(class USER_BROWSER_LBI_CACHE *)
?SetCurrentCache@USER_BROWSER_LB@@QAEXPAVUSER_BROWSER_LBI_CACHE@@@Z
; public: long __thiscall BLT_DATE_SPIN_GROUP::SetCurrentDay(void)
?SetCurrentDay@BLT_DATE_SPIN_GROUP@@QAEJXZ
; public: void __thiscall NT_USER_BROWSER_DIALOG::SetCurrentDomainFocus(class BROWSER_DOMAIN *)
?SetCurrentDomainFocus@NT_USER_BROWSER_DIALOG@@QAEXPAVBROWSER_DOMAIN@@@Z
; protected: void __thiscall SPIN_GROUP::SetCurrentField(class SPIN_ITEM *)
?SetCurrentField@SPIN_GROUP@@IAEXPAVSPIN_ITEM@@@Z
; public: long __thiscall BLT_TIME_SPIN_GROUP::SetCurrentTime(void)
?SetCurrentTime@BLT_TIME_SPIN_GROUP@@QAEJXZ
; public: long __thiscall GET_FNAME_BASE_DLG::SetCustomFilter(class STRLIST &,unsigned long)
?SetCustomFilter@GET_FNAME_BASE_DLG@@QAEJAAVSTRLIST@@K@Z
; public: void __thiscall DISK_SPACE_SUBCLASS::SetDSFieldName(long)
?SetDSFieldName@DISK_SPACE_SUBCLASS@@QAEXJ@Z
; public: void __thiscall BLT_DATE_SPIN_GROUP::SetDay(int)
?SetDay@BLT_DATE_SPIN_GROUP@@QAEXH@Z
; private: static void __stdcall HIER_LBI::SetDestroyable(int)
?SetDestroyable@HIER_LBI@@CGXH@Z
; public: void __thiscall OWNER_WINDOW::SetDialogFocus(class CONTROL_WINDOW &)
?SetDialogFocus@OWNER_WINDOW@@QAEXAAVCONTROL_WINDOW@@@Z
; protected: void __thiscall NT_USER_BROWSER_DIALOG::SetDomainComboDropFlag(int)
?SetDomainComboDropFlag@NT_USER_BROWSER_DIALOG@@IAEXH@Z
; public: void __thiscall OUTLINE_LISTBOX::SetDomainExpanded(int,int)
?SetDomainExpanded@OUTLINE_LISTBOX@@QAEXHH@Z
; public: long __thiscall BASE_ELLIPSIS::SetEllipsis(unsigned short *)
?SetEllipsis@BASE_ELLIPSIS@@QAEJPAG@Z
; public: long __thiscall BASE_ELLIPSIS::SetEllipsis(class NLS_STR *)
?SetEllipsis@BASE_ELLIPSIS@@QAEJPAVNLS_STR@@@Z
; protected: long __thiscall BASE_ELLIPSIS::SetEllipsisCenter(class NLS_STR *)
?SetEllipsisCenter@BASE_ELLIPSIS@@IAEJPAVNLS_STR@@@Z
; protected: long __thiscall BASE_ELLIPSIS::SetEllipsisLeft(class NLS_STR *)
?SetEllipsisLeft@BASE_ELLIPSIS@@IAEJPAVNLS_STR@@@Z
; protected: long __thiscall BASE_ELLIPSIS::SetEllipsisPath(class NLS_STR *)
?SetEllipsisPath@BASE_ELLIPSIS@@IAEJPAVNLS_STR@@@Z
; protected: long __thiscall BASE_ELLIPSIS::SetEllipsisRight(class NLS_STR *)
?SetEllipsisRight@BASE_ELLIPSIS@@IAEJPAVNLS_STR@@@Z
; protected: void __thiscall GET_FNAME_BASE_DLG::SetEnableHook(int)
?SetEnableHook@GET_FNAME_BASE_DLG@@IAEXH@Z
; public: void __thiscall HIER_LBI::SetExpanded(int)
?SetExpanded@HIER_LBI@@QAEXH@Z
; private: void __thiscall OLLB_ENTRY::SetExpanded(int)
?SetExpanded@OLLB_ENTRY@@AAEXH@Z
; public: int __thiscall SPIN_GROUP::SetFieldMinMax(unsigned short)
?SetFieldMinMax@SPIN_GROUP@@QAEHG@Z
; public: long __thiscall SPIN_SLE_NUM_VALID::SetFieldName(long)
?SetFieldName@SPIN_SLE_NUM_VALID@@QAEJJ@Z
; public: long __thiscall GET_FNAME_BASE_DLG::SetFileExtension(class NLS_STR const &)
?SetFileExtension@GET_FNAME_BASE_DLG@@QAEJABVNLS_STR@@@Z
; public: long __thiscall GET_FNAME_BASE_DLG::SetFilter(class STRLIST &,unsigned long)
?SetFilter@GET_FNAME_BASE_DLG@@QAEJAAVSTRLIST@@K@Z
; public: void __thiscall MLE::SetFmtLines(int)
?SetFmtLines@MLE@@QAEXH@Z
; public: void __thiscall OWNER_WINDOW::SetFocus(unsigned int)
?SetFocus@OWNER_WINDOW@@QAEXI@Z
; public: void __thiscall CONTROL_WINDOW::SetFont(struct HFONT__ *,int)
?SetFont@CONTROL_WINDOW@@QAEXPAUHFONT__@@H@Z
; public: long __thiscall FONT::SetFont(struct tagLOGFONTW const &)
?SetFont@FONT@@QAEJABUtagLOGFONTW@@@Z
; public: long __thiscall FONT::SetFont(struct HFONT__ *)
?SetFont@FONT@@QAEJPAUHFONT__@@@Z
; public: void __thiscall CONTROL_VALUE::SetGroup(class CONTROL_GROUP *)
?SetGroup@CONTROL_VALUE@@QAEXPAVCONTROL_GROUP@@@Z
; protected: void __thiscall MENU_BASE::SetHandle(struct HMENU__ *)
?SetHandle@MENU_BASE@@IAEXPAUHMENU__@@@Z
; protected: void __thiscall WIN32_HANDLE::SetHandle(void *)
?SetHandle@WIN32_HANDLE@@IAEXPAX@Z
; public: void __thiscall XYDIMENSION::SetHeight(unsigned int)
?SetHeight@XYDIMENSION@@QAEXI@Z
; public: void __thiscall GET_FNAME_BASE_DLG::SetHelpActive(int)
?SetHelpActive@GET_FNAME_BASE_DLG@@QAEXH@Z
; public: static unsigned long __stdcall POPUP::SetHelpContextBase(unsigned long)
?SetHelpContextBase@POPUP@@SGKK@Z
; public: void __thiscall GET_FNAME_BASE_DLG::SetHookProc(unsigned long)
?SetHookProc@GET_FNAME_BASE_DLG@@QAEXK@Z
; public: void __thiscall LISTBOX::SetHorizontalExtent(unsigned int)
?SetHorizontalExtent@LISTBOX@@QAEXI@Z
; public: void __thiscall BLT_TIME_SPIN_GROUP::SetHour(int)
?SetHour@BLT_TIME_SPIN_GROUP@@QAEXH@Z
; public: long __thiscall LOGON_HOURS_CONTROL::SetHours(class LOGON_HOURS_SETTING const *)
?SetHours@LOGON_HOURS_CONTROL@@QAEJPBVLOGON_HOURS_SETTING@@@Z
; protected: void __thiscall WINDOW::SetHwnd(struct HWND__ *)
?SetHwnd@WINDOW@@IAEXPAUHWND__@@@Z
; public: int __thiscall APP_WINDOW::SetIcon(class IDRESOURCE const &)
?SetIcon@APP_WINDOW@@QAEHABVIDRESOURCE@@@Z
; public: long __thiscall ICON_CONTROL::SetIcon(class IDRESOURCE const &)
?SetIcon@ICON_CONTROL@@QAEJABVIDRESOURCE@@@Z
; protected: void __thiscall CANCEL_TASK_DIALOG::SetInTimer(int)
?SetInTimer@CANCEL_TASK_DIALOG@@IAEXH@Z
; public: void __thiscall USER_BROWSER_LBI_CACHE::SetIncludeUsers(int)
?SetIncludeUsers@USER_BROWSER_LBI_CACHE@@QAEXH@Z
; private: void __thiscall HIER_LBI::SetIndentLevel(void)
?SetIndentLevel@HIER_LBI@@AAEXXZ
; public: long __thiscall GET_FNAME_BASE_DLG::SetInitialDir(class NLS_STR const &)
?SetInitialDir@GET_FNAME_BASE_DLG@@QAEJABVNLS_STR@@@Z
; private: void __thiscall BLT_LISTBOX::SetItem(int,class LBI *)
?SetItem@BLT_LISTBOX@@AAEXHPAVLBI@@@Z
; protected: int __thiscall LIST_CONTROL::SetItemData(int,void *)
?SetItemData@LIST_CONTROL@@IAEHHPAX@Z
; public: int __thiscall DEVICE_CONTEXT::SetMapMode(int)
?SetMapMode@DEVICE_CONTEXT@@QAEHH@Z
; private: void __thiscall DISPLAY_MAP::SetMaskBits(unsigned char *,int,int,unsigned int)
?SetMaskBits@DISPLAY_MAP@@AAEXPAEHHI@Z
; private: void __thiscall SPIN_SLE_NUM::SetMaxInput(void)
?SetMaxInput@SPIN_SLE_NUM@@AAEXXZ
; public: int __thiscall COMBOBOX::SetMaxLength(unsigned int)
?SetMaxLength@COMBOBOX@@QAEHI@Z
; public: void __thiscall EDIT_CONTROL::SetMaxLength(unsigned int)
?SetMaxLength@EDIT_CONTROL@@QAEXI@Z
; public: int __thiscall APP_WINDOW::SetMenu(class IDRESOURCE const &)
?SetMenu@APP_WINDOW@@QAEHABVIDRESOURCE@@@Z
; public: void __thiscall CHANGEABLE_SPIN_ITEM::SetMin(unsigned long)
?SetMin@CHANGEABLE_SPIN_ITEM@@QAEXK@Z
; public: void __thiscall SPIN_SLE_NUM::SetMin(unsigned long)
?SetMin@SPIN_SLE_NUM@@QAEXK@Z
; public: void __thiscall BLT_TIME_SPIN_GROUP::SetMinute(int)
?SetMinute@BLT_TIME_SPIN_GROUP@@QAEXH@Z
; public: void __thiscall ELAPSED_TIME_CONTROL::SetMinuteFieldName(long)
?SetMinuteFieldName@ELAPSED_TIME_CONTROL@@QAEXJ@Z
; public: void __thiscall ELAPSED_TIME_CONTROL::SetMinuteMin(long)
?SetMinuteMin@ELAPSED_TIME_CONTROL@@QAEXJ@Z
; public: void __thiscall ELAPSED_TIME_CONTROL::SetMinuteRange(long)
?SetMinuteRange@ELAPSED_TIME_CONTROL@@QAEXJ@Z
; public: void __thiscall ELAPSED_TIME_CONTROL::SetMinuteValue(long)
?SetMinuteValue@ELAPSED_TIME_CONTROL@@QAEXJ@Z
; public: void __thiscall SPIN_GROUP::SetModified(int)
?SetModified@SPIN_GROUP@@QAEXH@Z
; public: void __thiscall BLT_DATE_SPIN_GROUP::SetMonth(int)
?SetMonth@BLT_DATE_SPIN_GROUP@@QAEXH@Z
; public: static void __stdcall POPUP::SetMsgMapTable(struct _MSGMAPENTRY *)
?SetMsgMapTable@POPUP@@SGXPAU_MSGMAPENTRY@@@Z
; protected: virtual long __thiscall BASE_SET_FOCUS_DLG::SetNetworkFocus(struct HWND__ *,unsigned short const *,enum FOCUS_CACHE_SETTING)
?SetNetworkFocus@BASE_SET_FOCUS_DLG@@MAEJPAUHWND__@@PBGW4FOCUS_CACHE_SETTING@@@Z
; protected: virtual long __thiscall STANDALONE_SET_FOCUS_DLG::SetNetworkFocus(struct HWND__ *,unsigned short const *,enum FOCUS_CACHE_SETTING)
?SetNetworkFocus@STANDALONE_SET_FOCUS_DLG@@MAEJPAUHWND__@@PBGW4FOCUS_CACHE_SETTING@@@Z
; private: void __thiscall TIMER_BASE::SetNewTimeDue(void)
?SetNewTimeDue@TIMER_BASE@@AAEXXZ
; public: long __thiscall BASE_ELLIPSIS::SetOriginalStr(unsigned short const *)
?SetOriginalStr@BASE_ELLIPSIS@@QAEJPBG@Z
; protected: void __thiscall DM_DTE::SetPdm(class DISPLAY_MAP *)
?SetPdm@DM_DTE@@IAEXPAVDISPLAY_MAP@@@Z
; public: virtual void __thiscall HIER_LBI::SetPelIndent(unsigned int)
?SetPelIndent@HIER_LBI@@UAEXI@Z
; public: long __thiscall APP_WINDOW::SetPlacement(struct tagWINDOWPLACEMENT const *)const 
?SetPlacement@APP_WINDOW@@QBEJPBUtagWINDOWPLACEMENT@@@Z
; public: static void __stdcall CURSOR::SetPos(class XYPOINT const &)
?SetPos@CURSOR@@SGXABVXYPOINT@@@Z
; public: void __thiscall SCROLLBAR::SetPos(unsigned int)
?SetPos@SCROLLBAR@@QAEXI@Z
; public: void __thiscall WINDOW::SetPos(class XYPOINT,int,class WINDOW *)
?SetPos@WINDOW@@QAEXVXYPOINT@@HPAV1@@Z
; public: long __thiscall ICON_CONTROL::SetPredefinedIcon(class IDRESOURCE const &)
?SetPredefinedIcon@ICON_CONTROL@@QAEJABVIDRESOURCE@@@Z
; public: long __thiscall WIN32_THREAD::SetPriority(int)
?SetPriority@WIN32_THREAD@@QAEJH@Z
; public: void __thiscall CHANGEABLE_SPIN_ITEM::SetRange(unsigned long)
?SetRange@CHANGEABLE_SPIN_ITEM@@QAEXK@Z
; public: void __thiscall SCROLLBAR::SetRange(unsigned int,unsigned int)
?SetRange@SCROLLBAR@@QAEXII@Z
; public: void __thiscall SPIN_SLE_NUM::SetRange(unsigned long)
?SetRange@SPIN_SLE_NUM@@QAEXK@Z
; public: void __thiscall SPIN_SLE_STR::SetRange(long)
?SetRange@SPIN_SLE_STR@@QAEXJ@Z
; public: void __thiscall WINDOW::SetRedraw(int)
?SetRedraw@WINDOW@@QAEXH@Z
; public: long __thiscall EDIT_CONTROL::SetSaveValue(unsigned short const *)
?SetSaveValue@EDIT_CONTROL@@QAEJPBG@Z
; public: long __thiscall SPIN_SLE_NUM::SetSaveValue(unsigned long)
?SetSaveValue@SPIN_SLE_NUM@@QAEJK@Z
; public: void __thiscall LISTBOX::SetScrollPos(unsigned int)
?SetScrollPos@LISTBOX@@QAEXI@Z
; public: void __thiscall BLT_TIME_SPIN_GROUP::SetSecond(int)
?SetSecond@BLT_TIME_SPIN_GROUP@@QAEXH@Z
; public: void __thiscall ELAPSED_TIME_CONTROL::SetSecondFieldName(long)
?SetSecondFieldName@ELAPSED_TIME_CONTROL@@QAEXJ@Z
; public: void __thiscall ELAPSED_TIME_CONTROL::SetSecondMin(long)
?SetSecondMin@ELAPSED_TIME_CONTROL@@QAEXJ@Z
; public: void __thiscall ELAPSED_TIME_CONTROL::SetSecondRange(long)
?SetSecondRange@ELAPSED_TIME_CONTROL@@QAEXJ@Z
; public: void __thiscall ELAPSED_TIME_CONTROL::SetSecondValue(long)
?SetSecondValue@ELAPSED_TIME_CONTROL@@QAEXJ@Z
; public: void __thiscall GRAPHICAL_BUTTON_WITH_DISABLE::SetSelected(int)
?SetSelected@GRAPHICAL_BUTTON_WITH_DISABLE@@QAEXH@Z
; private: void __thiscall LOGON_HOURS_CONTROL::SetSelectedCells(int)
?SetSelectedCells@LOGON_HOURS_CONTROL@@AAEXH@Z
; private: void __thiscall LOGON_HOURS_CONTROL::SetSelection(int)
?SetSelection@LOGON_HOURS_CONTROL@@AAEXH@Z
; private: void __thiscall LOGON_HOURS_CONTROL::SetSelection(int,int)
?SetSelection@LOGON_HOURS_CONTROL@@AAEXHH@Z
; public: void __thiscall MAGIC_GROUP::SetSelection(unsigned int)
?SetSelection@MAGIC_GROUP@@QAEXI@Z
; public: void __thiscall RADIO_GROUP::SetSelection(unsigned int)
?SetSelection@RADIO_GROUP@@QAEXI@Z
; protected: void __thiscall RADIO_GROUP::SetSelectionDontNotifyGroups(unsigned int)
?SetSelectionDontNotifyGroups@RADIO_GROUP@@IAEXI@Z
; public: void __thiscall CONSOLE_ELLIPSIS::SetSize(int)
?SetSize@CONSOLE_ELLIPSIS@@QAEXH@Z
; public: void __thiscall SLT_ELLIPSIS::SetSize(int,int,int)
?SetSize@SLT_ELLIPSIS@@QAEXHHH@Z
; public: void __thiscall WINDOW::SetSize(int,int,int)
?SetSize@WINDOW@@QAEXHHH@Z
; public: void __thiscall WINDOW::SetSize(class XYDIMENSION,int)
?SetSize@WINDOW@@QAEXVXYDIMENSION@@H@Z
; public: void __thiscall WIN_ELLIPSIS::SetSize(int,int)
?SetSize@WIN_ELLIPSIS@@QAEXHH@Z
; public: void __thiscall CHANGEABLE_SPIN_ITEM::SetSmallDecValue(unsigned long)
?SetSmallDecValue@CHANGEABLE_SPIN_ITEM@@QAEXK@Z
; public: void __thiscall CHANGEABLE_SPIN_ITEM::SetSmallIncValue(unsigned long)
?SetSmallIncValue@CHANGEABLE_SPIN_ITEM@@QAEXK@Z
; protected: void __thiscall NT_GROUP_BROWSER_DIALOG::SetSourceDialog(class NT_GROUP_BROWSER_DIALOG *)
?SetSourceDialog@NT_GROUP_BROWSER_DIALOG@@IAEXPAV1@@Z
; private: long __thiscall ELAPSED_TIME_CONTROL::SetSpinItemAccKey(class SPIN_ITEM *,class SLT &,int)
?SetSpinItemAccKey@ELAPSED_TIME_CONTROL@@AAEJPAVSPIN_ITEM@@AAVSLT@@H@Z
; protected: void __thiscall SLE_STRLB_GROUP::SetState(void)const 
?SetState@SLE_STRLB_GROUP@@IBEXXZ
; protected: void __thiscall STATE_BUTTON_CONTROL::SetState(unsigned int)
?SetState@STATE_BUTTON_CONTROL@@IAEXI@Z
; public: int __thiscall STLBITEM::SetState(int)
?SetState@STLBITEM@@QAEHH@Z
; private: void __thiscall WIN32_THREAD::SetState(enum _THREAD_STATE)
?SetState@WIN32_THREAD@@AAEXW4_THREAD_STATE@@@Z
; public: void __thiscall GRAPHICAL_BUTTON::SetStatus(unsigned int)
?SetStatus@GRAPHICAL_BUTTON@@QAEXI@Z
; public: void __thiscall GRAPHICAL_BUTTON::SetStatus(struct HBITMAP__ *)
?SetStatus@GRAPHICAL_BUTTON@@QAEXPAUHBITMAP__@@@Z
; private: void __thiscall SPIN_SLE_STR::SetStr(long)
?SetStr@SPIN_SLE_STR@@AAEXJ@Z
; private: long __thiscall GET_FNAME_BASE_DLG::SetStringField(unsigned short * *,class NLS_STR const &)
?SetStringField@GET_FNAME_BASE_DLG@@AAEJPAPAGABVNLS_STR@@@Z
; public: void __thiscall BASE_ELLIPSIS::SetStyle(enum ELLIPSIS_STYLE)
?SetStyle@BASE_ELLIPSIS@@QAEXW4ELLIPSIS_STYLE@@@Z
; public: void __thiscall WINDOW::SetStyle(unsigned long)
?SetStyle@WINDOW@@QAEXK@Z
; protected: virtual void __thiscall CONTROL_VALUE::SetTabStop(int)
?SetTabStop@CONTROL_VALUE@@MAEXH@Z
; protected: virtual void __thiscall CONTROL_WINDOW::SetTabStop(int)
?SetTabStop@CONTROL_WINDOW@@MAEXH@Z
; public: long __thiscall ACCOUNT_NAMES_MLE::SetTargetDomain(unsigned short const *)
?SetTargetDomain@ACCOUNT_NAMES_MLE@@QAEJPBG@Z
; public: long __thiscall GET_FNAME_BASE_DLG::SetText(class NLS_STR const &)
?SetText@GET_FNAME_BASE_DLG@@QAEJABVNLS_STR@@@Z
; public: int __thiscall MENUITEM::SetText(unsigned short const *)
?SetText@MENUITEM@@QAEHPBG@Z
; public: long __thiscall SLT_ELLIPSIS::SetText(class NLS_STR const &)
?SetText@SLT_ELLIPSIS@@QAEJABVNLS_STR@@@Z
; public: long __thiscall SLT_ELLIPSIS::SetText(unsigned short const *)
?SetText@SLT_ELLIPSIS@@QAEJPBG@Z
; public: void __thiscall WINDOW::SetText(class NLS_STR const &)
?SetText@WINDOW@@QAEXABVNLS_STR@@@Z
; public: void __thiscall WINDOW::SetText(unsigned short const *)
?SetText@WINDOW@@QAEXPBG@Z
; public: unsigned int __thiscall DEVICE_CONTEXT::SetTextAlign(unsigned int)
?SetTextAlign@DEVICE_CONTEXT@@QAEII@Z
; public: unsigned long __thiscall DEVICE_CONTEXT::SetTextColor(unsigned long)
?SetTextColor@DEVICE_CONTEXT@@QAEKK@Z
; public: void __thiscall LIST_CONTROL::SetTopIndex(int)
?SetTopIndex@LIST_CONTROL@@QAEXH@Z
; public: long __thiscall BROWSER_SUBJECT::SetUserBrowserLBI(class USER_BROWSER_LBI *)
?SetUserBrowserLBI@BROWSER_SUBJECT@@QAEJPAVUSER_BROWSER_LBI@@@Z
; public: void __thiscall CHANGEABLE_SPIN_ITEM::SetValue(unsigned long)
?SetValue@CHANGEABLE_SPIN_ITEM@@QAEXK@Z
; public: void __thiscall DEC_SLT::SetValue(long)
?SetValue@DEC_SLT@@QAEXJ@Z
; public: void __thiscall DEC_SLT::SetValue(unsigned long)
?SetValue@DEC_SLT@@QAEXK@Z
; public: void __thiscall XYDIMENSION::SetWidth(unsigned int)
?SetWidth@XYDIMENSION@@QAEXI@Z
; public: void __thiscall XYPOINT::SetX(int)
?SetX@XYPOINT@@QAEXH@Z
; public: void __thiscall XYPOINT::SetY(int)
?SetY@XYPOINT@@QAEXH@Z
; public: void __thiscall BLT_DATE_SPIN_GROUP::SetYear(int)
?SetYear@BLT_DATE_SPIN_GROUP@@QAEXH@Z
; public: static void __stdcall CURSOR::Show(int)
?Show@CURSOR@@SGXH@Z
; public: int __thiscall POPUP::Show(void)
?Show@POPUP@@QAEHXZ
; public: int __thiscall WINDOW::Show(int)
?Show@WINDOW@@QAEHH@Z
; protected: void __thiscall BASE_SET_FOCUS_DLG::ShowArea(int)
?ShowArea@BASE_SET_FOCUS_DLG@@IAEXH@Z
; protected: void __thiscall EXPANDABLE_DIALOG::ShowArea(int)
?ShowArea@EXPANDABLE_DIALOG@@IAEXH@Z
; private: void __thiscall H_SPLITTER_BAR::ShowDragBar(class XYPOINT const &)
?ShowDragBar@H_SPLITTER_BAR@@AAEXABVXYPOINT@@@Z
; public: void __thiscall WINDOW::ShowFirst(void)
?ShowFirst@WINDOW@@QAEXXZ
; private: void __thiscall H_SPLITTER_BAR::ShowSpecialCursor(int)
?ShowSpecialCursor@H_SPLITTER_BAR@@AAEXH@Z
; public: void __thiscall WIN32_THREAD::Sleep(unsigned int)
?Sleep@WIN32_THREAD@@QAEXI@Z
; public: void __thiscall USER_LBI_CACHE::Sort(void)
?Sort@USER_LBI_CACHE@@QAEXXZ
; private: static unsigned long __stdcall WIN32_THREAD::StartThread(void *)
?StartThread@WIN32_THREAD@@CGKPAX@Z
; private: long __thiscall LB_COL_WIDTHS::StretchForFonts(struct HWND__ *,unsigned short const *)
?StretchForFonts@LB_COL_WIDTHS@@AAEJPAUHWND__@@PBG@Z
; public: long __thiscall MASK_MAP::StringToBits(class NLS_STR const &,class BITFIELD *,int,unsigned int *)
?StringToBits@MASK_MAP@@QAEJABVNLS_STR@@PAVBITFIELD@@HPAI@Z
; protected: long __thiscall ACCOUNT_NAMES_MLE::StripDomainIfWellKnown(class NLS_STR *)
?StripDomainIfWellKnown@ACCOUNT_NAMES_MLE@@IAEJPAVNLS_STR@@@Z
; protected: long __thiscall CUSTOM_CONTROL::SubClassWndProc(class EVENT const &)
?SubClassWndProc@CUSTOM_CONTROL@@IAEJABVEVENT@@@Z
; public: long __thiscall WIN32_THREAD::Suspend(void)
?Suspend@WIN32_THREAD@@QAEJXZ
; public: static void __stdcall BASE_ELLIPSIS::Term(void)
?Term@BASE_ELLIPSIS@@SGXXZ
; public: static void __stdcall BLT::Term(struct HINSTANCE__ *)
?Term@BLT@@SGXPAUHINSTANCE__@@@Z
; public: static void __stdcall BLTIMP::Term(void)
?Term@BLTIMP@@SGXXZ
; public: static void __stdcall BLT_MASTER_TIMER::Term(void)
?Term@BLT_MASTER_TIMER@@SGXXZ
; public: static void __stdcall CLIENT_WINDOW::Term(void)
?Term@CLIENT_WINDOW@@SGXXZ
; public: static void __stdcall POPUP::Term(void)
?Term@POPUP@@SGXXZ
; public: static void __stdcall BLT::TermDLL(void)
?TermDLL@BLT@@SGXXZ
; public: long __thiscall WIN32_THREAD::Terminate(unsigned int)
?Terminate@WIN32_THREAD@@QAEJI@Z
; public: int __thiscall DEVICE_CONTEXT::TextOutW(class NLS_STR const &,class XYPOINT)const 
?TextOutW@DEVICE_CONTEXT@@QBEHABVNLS_STR@@VXYPOINT@@@Z
; public: int __thiscall DEVICE_CONTEXT::TextOutW(class NLS_STR const &,class XYPOINT,struct tagRECT const *)const 
?TextOutW@DEVICE_CONTEXT@@QBEHABVNLS_STR@@VXYPOINT@@PBUtagRECT@@@Z
; public: int __thiscall DEVICE_CONTEXT::TextOutW(unsigned short const *,int,int,int)const 
?TextOutW@DEVICE_CONTEXT@@QBEHPBGHHH@Z
; public: int __thiscall DEVICE_CONTEXT::TextOutW(unsigned short const *,int,int,int,struct tagRECT const *)const 
?TextOutW@DEVICE_CONTEXT@@QBEHPBGHHHPBUtagRECT@@@Z
; public: int __thiscall CHECKBOX::Toggle(void)
?Toggle@CHECKBOX@@QAEHXZ
; public: long __thiscall LM_OLLB::ToggleDomain(int)
?ToggleDomain@LM_OLLB@@QAEJH@Z
; public: long __thiscall POPUP_MENU::Track(class PWND2HWND const &,unsigned int,int,int,struct tagRECT const *)const 
?Track@POPUP_MENU@@QBEJABVPWND2HWND@@IHHPBUtagRECT@@@Z
; public: int __thiscall ACCELTABLE::Translate(class WINDOW const *,struct tagMSG *)const 
?Translate@ACCELTABLE@@QBEHPBVWINDOW@@PAUtagMSG@@@Z
; public: void __thiscall TIMER_BASE::TriggerNow(void)
?TriggerNow@TIMER_BASE@@QAEXXZ
; long __stdcall TrimLeading(class NLS_STR *,unsigned short const *)
?TrimLeading@@YGJPAVNLS_STR@@PBG@Z
; long __stdcall TrimTrailing(class NLS_STR *,unsigned short const *)
?TrimTrailing@@YGJPAVNLS_STR@@PBG@Z
; public: void __thiscall AUTO_CURSOR::TurnOff(void)
?TurnOff@AUTO_CURSOR@@QAEXXZ
; public: void __thiscall AUTO_CURSOR::TurnOn(void)
?TurnOn@AUTO_CURSOR@@QAEXXZ
; public: long __thiscall BROWSER_DOMAIN::UnRequestAccountData(void)
?UnRequestAccountData@BROWSER_DOMAIN@@QAEJXZ
; public: long __thiscall DOMAIN_FILL_THREAD::UnRequestAccountData(void)
?UnRequestAccountData@DOMAIN_FILL_THREAD@@QAEJXZ
; public: virtual void __thiscall UI_EXT_MGR::UnloadExtensions(void)
?UnloadExtensions@UI_EXT_MGR@@UAEXXZ
; private: void __thiscall LOGON_HOURS_CONTROL::UnloadLabels(void)
?UnloadLabels@LOGON_HOURS_CONTROL@@AAEXXZ
; protected: virtual void __thiscall USER_LBI_CACHE::UnlockCache(void)
?UnlockCache@USER_LBI_CACHE@@MAEXXZ
; private: static void __stdcall BLTIMP::Unwind(enum BLT_CTOR_STATE)
?Unwind@BLTIMP@@CGXW4BLT_CTOR_STATE@@@Z
; public: virtual void __thiscall CHANGEABLE_SPIN_ITEM::Update(void)
?Update@CHANGEABLE_SPIN_ITEM@@UAEXXZ
; public: virtual void __thiscall SPIN_SLE_NUM::Update(void)
?Update@SPIN_SLE_NUM@@UAEXXZ
; public: virtual void __thiscall SPIN_SLE_STR::Update(void)
?Update@SPIN_SLE_STR@@UAEXXZ
; protected: void __thiscall NT_FIND_ACCOUNT_DIALOG::UpdateButtonState(void)
?UpdateButtonState@NT_FIND_ACCOUNT_DIALOG@@IAEXXZ
; protected: virtual void __thiscall NT_GROUP_BROWSER_DIALOG::UpdateButtonState(void)
?UpdateButtonState@NT_GROUP_BROWSER_DIALOG@@MAEXXZ
; protected: virtual void __thiscall NT_LOCALGROUP_BROWSER_DIALOG::UpdateButtonState(void)
?UpdateButtonState@NT_LOCALGROUP_BROWSER_DIALOG@@MAEXXZ
; protected: void __thiscall NT_USER_BROWSER_DIALOG::UpdateButtonState(void)
?UpdateButtonState@NT_USER_BROWSER_DIALOG@@IAEXXZ
; private: void __thiscall BASE_SET_FOCUS_DLG::UpdateRasMode(void)
?UpdateRasMode@BASE_SET_FOCUS_DLG@@AAEXXZ
; public: virtual long __thiscall CONTROL_WINDOW::Validate(void)
?Validate@CONTROL_WINDOW@@UAEJXZ
; private: long __thiscall DIALOG_WINDOW::Validate(void)
?Validate@DIALOG_WINDOW@@AAEJXZ
; public: virtual long __thiscall ICANON_SLE::Validate(void)
?Validate@ICANON_SLE@@UAEJXZ
; public: virtual long __thiscall SPIN_SLE_NUM::Validate(void)
?Validate@SPIN_SLE_NUM@@UAEJXZ
; protected: virtual long __thiscall SLE_STRLB_GROUP::W_Add(unsigned short const *)
?W_Add@SLE_STRLB_GROUP@@MAEJPBG@Z
; private: virtual unsigned short __thiscall GLOBAL_ATOM::W_AddAtom(unsigned short const *)const 
?W_AddAtom@GLOBAL_ATOM@@EBEGPBG@Z
; private: virtual unsigned short __thiscall LOCAL_ATOM::W_AddAtom(unsigned short const *)const 
?W_AddAtom@LOCAL_ATOM@@EBEGPBG@Z
; protected: long __thiscall MENU_BASE::W_Append(void const *,unsigned int,unsigned int)const 
?W_Append@MENU_BASE@@IBEJPBXII@Z
; private: long __thiscall UI_MENU_EXT::W_BiasMenuIds(struct HMENU__ *,unsigned long)
?W_BiasMenuIds@UI_MENU_EXT@@AAEJPAUHMENU__@@K@Z
; private: class LBI * __thiscall USER_LBI_CACHE::W_GetLBI(int)
?W_GetLBI@USER_LBI_CACHE@@AAEPAVLBI@@H@Z
; private: int __thiscall USER_LBI_CACHE::W_GrowCache(int)
?W_GrowCache@USER_LBI_CACHE@@AAEHH@Z
; protected: long __thiscall MENU_BASE::W_Insert(void const *,unsigned int,unsigned int,unsigned int)const 
?W_Insert@MENU_BASE@@IBEJPBXIII@Z
; protected: virtual class UI_EXT * __thiscall UI_EXT_MGR::W_LoadExtension(unsigned short const *,unsigned long)
?W_LoadExtension@UI_EXT_MGR@@MAEPAVUI_EXT@@PBGK@Z
; protected: long __thiscall MENU_BASE::W_Modify(void const *,unsigned int,unsigned int,unsigned int)const 
?W_Modify@MENU_BASE@@IBEJPBXIII@Z
; public: void __thiscall BROWSER_DOMAIN_LBI::W_Paint(class BROWSER_DOMAIN_CB *,class LISTBOX *,struct HDC__ *,struct tagRECT const *,struct GUILTT_INFO *)const 
?W_Paint@BROWSER_DOMAIN_LBI@@QBEXPAVBROWSER_DOMAIN_CB@@PAVLISTBOX@@PAUHDC__@@PBUtagRECT@@PAUGUILTT_INFO@@@Z
; protected: int __thiscall MENU_BASE::W_QueryItemText(unsigned short *,unsigned int,unsigned int,unsigned int)const 
?W_QueryItemText@MENU_BASE@@IBEHPAGIII@Z
; private: virtual long __thiscall GLOBAL_ATOM::W_QueryString(unsigned short *,unsigned int)const 
?W_QueryString@GLOBAL_ATOM@@EBEJPAGI@Z
; private: virtual long __thiscall LOCAL_ATOM::W_QueryString(unsigned short *,unsigned int)const 
?W_QueryString@LOCAL_ATOM@@EBEJPAGI@Z
; private: long __thiscall ICON_CONTROL::W_SetIcon(class IDRESOURCE const &,int)
?W_SetIcon@ICON_CONTROL@@AAEJABVIDRESOURCE@@H@Z
; public: long __thiscall WIN32_SYNC_BASE::Wait(unsigned int)
?Wait@WIN32_SYNC_BASE@@QAEJI@Z
; public: long __thiscall BROWSER_DOMAIN::WaitForAdminAuthority(unsigned long,int *)const 
?WaitForAdminAuthority@BROWSER_DOMAIN@@QBEJKPAH@Z
; public: long __thiscall DOMAIN_FILL_THREAD::WaitForAdminAuthority(unsigned long,int *)const 
?WaitForAdminAuthority@DOMAIN_FILL_THREAD@@QBEJKPAH@Z
; private: int __thiscall OPEN_DIALOG_BASE::WarnCloseMulti(void)
?WarnCloseMulti@OPEN_DIALOG_BASE@@AAEHXZ
; private: int __thiscall OPEN_DIALOG_BASE::WarnCloseSingle(class OPEN_LBI_BASE *)
?WarnCloseSingle@OPEN_DIALOG_BASE@@AAEHPAVOPEN_LBI_BASE@@@Z
; private: int __thiscall ARRAY_CONTROLVAL_CID_PAIR::WithinRange(unsigned int)const 
?WithinRange@ARRAY_CONTROLVAL_CID_PAIR@@ABEHI@Z
; public: static long __stdcall CLIENT_WINDOW::WndProc(struct HWND__ *,unsigned int,unsigned int,long)
?WndProc@CLIENT_WINDOW@@SGJPAUHWND__@@IIJ@Z
; public: static long __stdcall CUSTOM_CONTROL::WndProc(struct HWND__ *,unsigned int,unsigned int,long)
?WndProc@CUSTOM_CONTROL@@SGJPAUHWND__@@IIJ@Z
; int __stdcall max(int,int)
?max@@YGHHH@Z
; int __stdcall min(int,int)
?min@@YGHHH@Z
; public: unsigned long (__stdcall*__thiscall GET_FNAME_BASE_DLG::pfExtendedError(void)const )(void)
?pfExtendedError@GET_FNAME_BASE_DLG@@QBEP6GKXZXZ
; public: int (__stdcall*__thiscall GET_FNAME_BASE_DLG::pfGetOpenFileName(void)const )(struct tagOFNW *)
?pfGetOpenFileName@GET_FNAME_BASE_DLG@@QBEP6GHPAUtagOFNW@@@ZXZ
; public: int (__stdcall*__thiscall GET_FNAME_BASE_DLG::pfGetSaveFileName(void)const )(struct tagOFNW *)
?pfGetSaveFileName@GET_FNAME_BASE_DLG@@QBEP6GHPAUtagOFNW@@@ZXZ
BltCCWndProc
BltDlgProc
BltWndProc
CloseUserBrowser
EnumUserBrowserSelection
OpenUserBrowser
ShellDlgProc
