Скрипт as COM
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 21.05.04 08:28
Оценка:
Написал 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"

вопрос — кто виноват и что делать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.