Вызов IContextMenu непосредственно из dll расширения оболочкиC++

Программы на C++. Форум разработчиков
Anonymous
Вызов IContextMenu непосредственно из dll расширения оболочки

Сообщение Anonymous »

Вызов IContextMenu непосредственно из dll расширения оболочки
Я пытаюсь вызвать IContextMenu непосредственно из dll расширения оболочки, но возникли некоторые проблемы.
В целом
  • Загружаю DLL с помощью LoadLibrary
  • Вызов GetProcAddress, чтобы получить адрес DllGetClassObject
  • Позвонить DllGetClassObject для получения IID_IClassFactory
  • Вызов CreateInstance для получения IID_ContextMenu
Первые три шага успешны, но четвертый шаг завершается с ошибкой E_NOINTERFACE. То же самое произойдет, если я запрошу IID_IContextMenu2 и IID_IContextMenu3.
В конце концов я хочу получить доступ к IContextMenu и вызвать IContextMenu::QueryContextMenu. Как мне этого добиться?
#include
#include
#include

typedef HRESULT(WINAPI* DllGetClassObjectType)(REFCLSID rclsid, REFIID riid, void** ppv);

int main()
{
CoInitialize(NULL);

HMODULE hModule = LoadLibrary(L"C:\\Users\\UserName\\Desktop\\NppShell.dll");
if (!hModule) {
std::cout

Подробнее здесь: https://stackoverflow.com/questions/793 ... ension-dll

Вернуться в «C++»