У меня есть 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(...)
Зараннее благодарен.