vxworks操作系统的源代码
供研究学习
源代码在线查看: opccomn.idl
// OPCCOMN.IDL
// REVISION: 04/06/98 08:00 PM (EST)
// VERSIONINFO 1.0.0.0
//
// 04/09/98 acc import unknwn.idl rather than oaidl.idl
// 06/15/98 acc add 'library' object at end to allow typelib generation
// 06/19/98 acc change V2 uuids prior to final release
// to avoid conflict with 'old' OPCDA Automation uuids
// 09/18/98 acc add OPCServerList IDL (with help from Gary Klassen)
//
#ifdef _WIN32
import "unknwn.idl";
import "comcat.idl";
#else
import "vxidl.idl";
#endif
//****************************************************
// All servers except OPCDA1.0 have the ability to
// make callbacks into the client on shutdown via
// IOPCShutdown
//****************************************************
[
object,
uuid(F31DFDE1-07B6-11d2-B2D8-0060083BA1FB),
pointer_default(unique)
]
interface IOPCShutdown : IUnknown
{
HRESULT ShutdownRequest (
[in, string] LPCWSTR szReason
);
}
//****************************************************
// All servers except OPCDA1.0 support IOPCCommon
//****************************************************
[
object,
uuid(F31DFDE2-07B6-11d2-B2D8-0060083BA1FB),
pointer_default(unique)
]
interface IOPCCommon : IUnknown
{
HRESULT SetLocaleID (
[in] LCID dwLcid
);
HRESULT GetLocaleID (
[out] LCID *pdwLcid
);
HRESULT QueryAvailableLocaleIDs (
[out] DWORD *pdwCount,
[out, size_is(,*pdwCount)] LCID **pdwLcid
);
HRESULT GetErrorString(
[in] HRESULT dwError,
[out, string] LPWSTR *ppString
);
HRESULT SetClientName (
[in, string] LPCWSTR szName
);
}
//****************************************************
// The OPCEnum.EXE object provided by the OPC Foundation
// supports the IOPCServerList interface via DCOM
// to allow clients to determine available OPC servers
// on remote machines
//****************************************************
[
object,
uuid(13486D50-4821-11D2-A494-3CB306C10000),
pointer_default(unique)
]
interface IOPCServerList : IUnknown
{
HRESULT EnumClassesOfCategories(
[in] ULONG cImplemented,
[in,size_is(cImplemented)] CATID rgcatidImpl[],
[in] ULONG cRequired,
[in,size_is(cRequired)] CATID rgcatidReq[],
[out] IEnumGUID** ppenumClsid);
HRESULT GetClassDetails(
[in] REFCLSID clsid,
[out] LPOLESTR* ppszProgID,
[out] LPOLESTR* ppszUserType);
HRESULT CLSIDFromProgID(
[in] LPCOLESTR szProgId,
[out] LPCLSID clsid);
};
//****************************************************
// This TYPELIB is generated as a convenience to users of high level tools
// which are capable of using or browsing TYPELIBs.
// 'Smart Pointers' in VC5 is one example.
//****************************************************
[
uuid(B28EEDB1-AC6F-11d1-84D5-00608CB8A7E9),
version(1.0),
helpstring("OPCCOMN 1.0 Type Library")
]
library OPCCOMN
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
interface IOPCCommon;
interface IOPCShutdown;
interface IOPCServerList;
};