Enum и VB?
От: dead_ricky  
Дата: 14.07.04 08:43
Оценка:
У меня есть COM-объект — сервер, в той же библиотеке типов (если я правильно выражаюсь) обьявлено перечисление:

[
    uuid(52AA40D6-BE66-479c-80E3-719984DB5B03),
    v1_enum,
    helpstring("enum for ServiceDo")
]
typedef enum WHATTODO
{
    STOP        = 1,
    PAUSE        = 2,
    CONTINUE    = 3
} WHATTODO;


У COM-обьекта есть метод, где это перечисление используеться:

[id(3), helpstring("method ServiceDo")] HRESULT ServiceDo([in] BSTR ServiceName, [in] WHATTODO todo);


Пытаюсь использовать этот метод в VBA под EXCEL'ем:

Sub DoItWithService(todo As WHATTODO)
    Dim depend() As String
    Dim size As Long
    
    On Error GoTo ErrorView
    If Not o Is Nothing Then
        ' VB выеживается!!! Говорит так писать нельзя! 
        if todo = STOP then
            depend = o.EnumDependentServices(ActiveCell.Text, size)
            If size > 0 Then
                ' ля-ля-ля
            End If
        End If
        ' И тут тоже VB выеживаеться, выдает какую-то ошибку! 
        ' Если же вместо todo поставить STOP или PAUSE то все равно выеживаеться!
        o.ServiceDo(ActiveCell.Text, todo)
    End If
ErrorView:
    MsgBox Err.Description
End Sub


Ну и следовательно вопрос: Как в этом <вырезано цензурой> VB вызвать метод ServiceDo(...)
Зараннее благодарен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.