Я борюсь с чем-то, что должно быть простым, я хочу создать моникер с конкретным отображаемым именем (например, "MyApplicationMnk")
Мне нужен этот моникер, чтобы связать его с приложением EXE, зарегистрированным вреестр Windows как LOCAL SERVER
типа для регистрации его в таблице запущенных объектов (он же ROT)
функция COM MkParseDisplayName
возвращает invalid syntax
ошибка, единственная источник Я обнаружил, что упомянутое решение этой проблемы не работает со мной.
Код такой же простой, как и следующий
IMoniker* appmnk;
HRESULT hr;
CComPtr<IBindCtx> bct;
DWORD wctx = 0;
ULONG ulng = 0L;
CreateBindCtx(wctx, &bct);
OLECHAR dspnm = (wchar_t)"MyApplicationMnk";
LPCOLESTR dspnmptr = &dspnm;
hr = MkParseDisplayName(bct, dspnmptr, &ulng, &appmnk); // returns invalid syntax
.
.
//some code
.
.
appmnk->Release();
Я пытался вставитьзначение прямо как это
hr = MkParseDisplayName(bct, OLESTR("MyApplicationMnk"), &ulng, &appmnk);
и с вышеупомянутым предлагаемым решением, как это
hr = MkParseDisplayName(bct, (wchar_t *)(_bstr_t)(char *)"MyApplicationMnk", &ulng, &appmnk);
Я не знаю, чтонеправильно !, все поставляемые типы соответствуют тому, что сказано в документации.
Любая помощь обязательно будет оценена.