WILLはネットワークに関するあらゆるソリューションをご提供します。
株式会社ウィル

HOME 新着情報 製品一覧 受託開発 Download 購入方法 トライアル サポート 会社案内

VisualC++でSNMPOCXを利用する場合


▼SendTrap関数  ▼SNMPStringValue関数  ▼ObjectValueの受渡しはBSTRで行う

 

VisualC++でSNMPOCXを利用する場合、VC++が生成するSNMPSENDコントロールのラッパークラスC_SnmpSendをすこし修正する必要があります。

SendTrapメソッドおよびSNMPStringValueメソッドを例に、修正方法を下記に示します(修正例はVC++5.0のものです)。

TrapおよびResponseイベントとその中での処理に関してはSNMPマネージャーサンプル(VC++版)をご覧ください。
サンプルはダウンロードのページにあります。



▲TOPへ

1. SendTrap関数

ObjectValueをBSTR型にし、それをVariant変数に代入し、それをSnmpSendコントロールに渡す。

C_SnmpSend.h:
void SendTrap(LPCTSTR RemoteIP, LPCTSTR RemotePort, LPCTSTR Community,
LPCTSTR Enterprise, short GenericTrapType, LPCTSTR SpecificTrapType,
BSTR ObjectValue);

C_SnmpSend.cpp:
void C_SnmpSend::SendTrap(LPCTSTR RemoteIP, LPCTSTR RemotePort,
LPCTSTR Community, LPCTSTR Enterprise, short GenericTrapType,
LPCTSTR SpecificTrapType, BSTR ObjectValue)
{
VARIANT v;
static BYTE parms[] =
VTS_BSTR VTS_BSTR VTS_BSTR VTS_BSTR VTS_I2 VTS_BSTR VTS_VARIANT;
VariantInit(&v);
v.vt = VT_BSTR;
v.bstrVal = ObjectValue;

InvokeHelper(0x6003016a, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
RemoteIP, RemotePort, Community, Enterprise, GenericTrapType,
SpecificTrapType, &v);
}


▲TOPへ

2. SNMPStringValue関数

SnmpSendコントロールの戻り値をVariantで受ける。
関数の戻り値をBSTR型にする。

C_SnmpSend.h:
BSTR SNMPStringValue(LPCTSTR ObjectID, LPCTSTR Value);
C_SnmpSend.cpp:

BSTR C_SnmpSend::SNMPStringValue(LPCTSTR ObjectID, LPCTSTR Value)
{
VARIANT result;

static BYTE parms[] =
VTS_BSTR VTS_BSTR;
InvokeHelper(0x60030163, DISPATCH_METHOD, VT_VARIANT,
(void*)&result, parms,ObjectID, Value);
return result.bstrVal;
}


▲TOPへ

3. ObjectValueの受渡しはBSTRで行う

BSTR V6 = m_SnmpCtr.SNMPStringValue("1.3.6.1.4.1.5000.1","12345" );
m_SnmpCtr.SendTrap(V1,V2,V3,V4,6,V5,V6);

 


(C) Copyright 2003 WILL Corporation. All rights reserved.