Como obtenho o HMODULE para o código atualmente em execução?

Tenho uma biblioteca estática que pode ser vinculada a um.exe ou.dll. Em tempo de execução, desejo que apenas algumas das funções da minha biblioteca obtenham oHMODULE para qualquer coisa em que o código da biblioteca estática tenha sido vinculad

Atualmente, uso o seguinte truque (inspirado emeste fórum):

const HMODULE GetCurrentModule()
{
    MEMORY_BASIC_INFORMATION mbi = {0};
    ::VirtualQuery( GetCurrentModule, &mbi, sizeof(mbi) );

    return reinterpret_cast<HMODULE>(mbi.AllocationBase);
}

Existe uma maneira melhor de fazer isso que não parece tão hacky?

(Nota: O objetivo disso é carregar alguns recursos do Win32 que eu sei que meus usuários terão vinculado ao mesmo tempo que minha biblioteca estática.)

questionAnswers(4)

yourAnswerToTheQuestion