/* * AccGetLibName - get lib name of current module */ trap_retval ReqGet_lib_name( void ) { MODULEENTRY me; get_lib_name_req *acc; get_lib_name_ret *ret; char *name; acc = GetInPtr(0); ret = GetOutPtr(0); name = GetOutPtr( sizeof( *ret ) ); name[0] = '\0'; ret->handle = 0; if( acc->handle != 0 ) { CurrentModule = acc->handle + 1; } Out(( OUT_MAP,"acc->handle = %ld", acc->handle )); if( CurrentModule >= ModuleTop ) { Out(( OUT_MAP,"Past end of list" )); return( sizeof( *ret ) + 1 ); } me.dwSize = sizeof( me ); Out(( OUT_MAP,"ModuleTop=%d CurrentModule=%d id=%d", ModuleTop, CurrentModule, moduleIDs[ CurrentModule ] )); if( ModuleFindHandle( &me, moduleIDs[ CurrentModule ] ) ) { strcpy( name, me.szExePath ); } ret->handle = CurrentModule; Out(( OUT_MAP,"handle=%ld, name=\"%s\"", ret->handle, name )); return( sizeof( *ret ) + strlen( name ) + 1 ); }
BOOL MyModuleFindHandle( MODULEENTRY FAR* me, HMODULE h ) { BOOL rc; me->dwSize = sizeof( MODULEENTRY ); rc = (ModuleFindHandle( me, h ) != NULL); me->szModule[MAX_MODULE_NAME] = 0; return( rc ); } /* MyModuleFindHandle */