| extern int f1(); | |
| extern int f2(void*); | |
| extern void* f3(int); | |
| int xmsih; | |
| typedef unsigned short XWCHAR; | |
| inline unsigned int xstrlenW( const XWCHAR *str ) | |
| { | |
| const XWCHAR *s = str; | |
| while (*s) s++; | |
| return s - str; | |
| } | |
| static int msi_dialog_register_class( void ) | |
| { | |
| int cls; | |
| if( !f2( &cls ) ) | |
| return 0; | |
| if( !f2( &cls ) ) | |
| return 0; | |
| xmsih = f1(); | |
| if( !xmsih ) | |
| return 0; | |
| return 1; | |
| } | |
| void *xmsi_dialog_create(const XWCHAR* szDialogName) | |
| { | |
| msi_dialog_register_class(); | |
| return f3(xstrlenW(szDialogName)); | |
| } |