OPC – Simples instanciamento de um server OPC

IOPCServer* p_IOPCServer = NULL; // IOPCServer interface
CoInitialize(NULL); // DCOM
p_IOPCServer = opc_DI.InstantiateServer(L"ProcessIT.SimulationSvr.1")

// simple OPC Server instantiate
IOPCServer* COPC_DI::InstantiateServer(wchar_t* ServerName)
{
CLSID CLSID_OPCServer;
HRESULT hr;

// CLSID from the OPC Server
if(FAILED(hr = CLSIDFromProgID(ServerName, &CLSID_OPCServer)))
exit(0); // abort

// queue of the class instances to create
LONG cmq = 1; // how many create
MULTI_QI queue[1] =
{{&IID_IOPCServer,
NULL,
0}};

// create instance
if(FAILED(hr = CoCreateInstanceEx(CLSID_OPCServer, NULL, CLSCTX_SERVER, /* &CoServerInfo */ NULL, cmq, queue)))
exit(0); // abort

// return a pointer to the IOPCServer interface
return(IOPCServer*) queue[0].pItf;
}

[ ]´s
Francismar|Padawan

No comments yet

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: