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