; 
; Exports of file NARRHOOK.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY NARRHOOK.dll
EXPORTS
; void __stdcall BackToApplication(void)
?BackToApplication@@YGXXZ
; int __stdcall GetAnnounceMenu(void)
?GetAnnounceMenu@@YGHXZ
; int __stdcall GetAnnouncePopup(void)
?GetAnnouncePopup@@YGHXZ
; int __stdcall GetAnnounceToolTips(void)
?GetAnnounceToolTips@@YGHXZ
; int __stdcall GetAnnounceWindow(void)
?GetAnnounceWindow@@YGHXZ
; void __stdcall GetCurrentText(unsigned short *,int)
?GetCurrentText@@YGXPAGH@Z
; int __stdcall GetEchoChars(void)
?GetEchoChars@@YGHXZ
; int __stdcall GetReviewLevel(void)
?GetReviewLevel@@YGHXZ
; int __stdcall GetReviewStyle(void)
?GetReviewStyle@@YGHXZ
; int __stdcall GetTrackCaret(void)
?GetTrackCaret@@YGHXZ
; int __stdcall GetTrackInputFocus(void)
?GetTrackInputFocus@@YGHXZ
; int __stdcall GetTrackSecondary(void)
?GetTrackSecondary@@YGHXZ
; int __stdcall InitKeys(struct HWND__ *)
?InitKeys@@YGHPAUHWND__@@@Z
; int __stdcall InitMSAA(void)
?InitMSAA@@YGHXZ
; void __stdcall SetAnnounceMenu(int)
?SetAnnounceMenu@@YGXH@Z
; void __stdcall SetAnnouncePopup(int)
?SetAnnouncePopup@@YGXH@Z
; void __stdcall SetAnnounceToolTips(int)
?SetAnnounceToolTips@@YGXH@Z
; void __stdcall SetAnnounceWindow(int)
?SetAnnounceWindow@@YGXH@Z
; void __stdcall SetCurrentText(unsigned short const *)
?SetCurrentText@@YGXPBG@Z
; void __stdcall SetEchoChars(int)
?SetEchoChars@@YGXH@Z
; void __stdcall SetReviewLevel(int)
?SetReviewLevel@@YGXH@Z
; void __stdcall SetReviewStyle(int)
?SetReviewStyle@@YGXH@Z
; void __stdcall SetTrackCaret(int)
?SetTrackCaret@@YGXH@Z
; void __stdcall SetTrackInputFocus(int)
?SetTrackInputFocus@@YGXH@Z
; void __stdcall SetTrackSecondary(int)
?SetTrackSecondary@@YGXH@Z
; int __stdcall UnInitMSAA(void)
?UnInitMSAA@@YGHXZ
; int __stdcall UninitKeys(void)
?UninitKeys@@YGHXZ
; unsigned short * __stdcall lstrcatn(unsigned short *,unsigned short *,int)
?lstrcatn@@YGPAGPAG0H@Z
