Написал JavaScript, оформил как COM объект, как описано
здесьАвтор(ы):
Дата: 25.04.2001
, зарегистрировал (успешно, проверил в OleView), создал для него tlb (тоже видна в OleView). Теперь хочу попользовать.
В программе (C++,ATL/WTL) пишу
#import "C:\Scripts\scriptlet.tlb" no_namespace, named_guids
при компиляции создается scriptlet.tlh:
struct __declspec(uuid("7b02ae9f-daad-4b82-b960-add399cbf208"))
/* LIBID */ __ScriptletTypeLib;
struct /* coclass */ ScriptletCoClass;
struct __declspec(uuid("b0dcdb31-6618-4d0e-b8ec-2a23382b67dc"))
/* dispinterface */ Automation;
//
// Smart pointer typedef declarations
//
_COM_SMARTPTR_TYPEDEF(Automation, __uuidof(Automation));
//
// Type library items
//
struct __declspec(uuid("ef907bc6-3ebc-49fd-8056-89da35e8c4df"))
ScriptletCoClass;
// [ default ] dispinterface Automation
struct __declspec(uuid("b0dcdb31-6618-4d0e-b8ec-2a23382b67dc"))
Automation : IDispatch
{
//
// Wrapper methods for error-handling
//
// Methods:
_variant_t Method2 (
const _variant_t & uid,
const _variant_t & code,
const _variant_t & OptionalArgs );
_variant_t Method1 (
const _variant_t & uid,
const _variant_t & OptionalArgs );
};
// ну и + GUID-ы
пытаюсь поднять:
AutomationPtr pMyScriptPtr = NULL;
HRESULT hr;
hr = pScriptPtr.CreateInstance( "MyScript.WSC" ); // ProgID как он есть в скрипте и в OleView
результат — ошибка 0x80004002: "No such interface supported"
вопрос — кто виноват и что делать?