亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? opcst_ipt.h

?? 使用OPCST開發(fā)的進(jìn)程外OPCDA服務(wù)器
?? H
字號(hào):
#ifndef _OPCST_IMPORT_H
#define _OPCST_IMPORT_H

#include "ole2.h"
//LPWRITETAG////////////////////////////////
//更新設(shè)備回調(diào)用函數(shù)類型,由開發(fā)者實(shí)現(xiàn)。
//參數(shù):
//dwvid-- 設(shè)備標(biāo)記ID。OPCST要通過設(shè)備標(biāo)記ID來區(qū)別不同的標(biāo)記點(diǎn)(Tag點(diǎn))。
//value-- 向通道devid 傳送的值,類型為VARIANT。開發(fā)者根據(jù)參數(shù)value的不同數(shù)據(jù)類型,取出具體的基本數(shù)據(jù)值,更新實(shí)際的設(shè)備或內(nèi)存變量。
//返回值:
//執(zhí)行成功返回true,執(zhí)行失敗返回false。

typedef		bool (*LPWRITETAG)(
		unsigned devid/*IN*/,
		VARIANT	*value/*IN*/
		);
///////////////////////////////////


//LPREADTAG/////////////////////////////////
//讀取設(shè)備回調(diào)函數(shù)類型,由開發(fā)者實(shí)現(xiàn)
//參數(shù):
//dwvid-- 設(shè)備標(biāo)記ID。OPCST要通過設(shè)備標(biāo)記ID來區(qū)別不同的標(biāo)記點(diǎn)(Tag點(diǎn))。
//value-- 從通道devid 讀取的值,類型為VARIANT。開發(fā)者根據(jù)參數(shù)vtype的不同及實(shí)際的設(shè)備值,向參數(shù)value賦值。
//vtype-- 指定要讀取的數(shù)據(jù)類型
//返回值:
//執(zhí)行成功返回true,執(zhí)行失敗返回false。
typedef		bool (*LPREADTAG)(
		unsigned	devid/*IN*/,
		VARIANT	*value/*OUT*/, 
		const VARTYPE vtype/*IN*/);
///////////////////////////////////


//SVendorInfo/////////////////////////////////
//服務(wù)器版本及說明
//wMajorVersion	-- 主版本號(hào)
//wMinorVersion	-- 次版本號(hào)
//wBuildNumber	-- 發(fā)布版本號(hào)
//wReserved		-- 保留
//VendorInfo64[64]	-- 服務(wù)器說明
typedef struct SVendorInfo
{
	WORD wMajorVersion; 
	WORD wMinorVersion; 
	WORD wBuildNumber; 
	WORD wReserved;
	char VendorInfo64[64];
} SVendorInfo;
///////////////////////////////////


//SOPCRegisterInfo/////////////////////////////////
//服務(wù)器組件注冊(cè)信息
//ClsidName128	-- 組件類名稱
//ProgID128[128]-- 組件屬性名,系統(tǒng)必須唯一。如OPCDA.XXX
//OPCServerGUID-- 全局唯一標(biāo)識(shí)符。通常利用微軟的guidgen.exe工具產(chǎn)生。
typedef	struct SOPCRegisterInfo
{
	char	ClsidName128[128];
	char	ProgID128[128] ;
	GUID	clsid_OPCServerGUID ;
}SOPCRegisterInfo;
///////////////////////////////////


//SOPCServerInfo/////////////////////////////////
//OPCDA服務(wù)器參數(shù)
//uUpdateRate -- 開發(fā)者根據(jù)具體設(shè)備的數(shù)據(jù)變化速度,確定一刷新速度,單位為毫秒
//dwForceRefresh_Band -- 強(qiáng)制向客戶程序發(fā)送數(shù)據(jù)的時(shí)間間隔,單位為毫秒。一般情況下,
//				對(duì)于支持2.0標(biāo)準(zhǔn)的客戶程序,服務(wù)器會(huì)主動(dòng)向客戶程序發(fā)送更新數(shù)據(jù)。但在不可
//				預(yù)見的因素導(dǎo)致客戶端數(shù)據(jù)過期時(shí),服務(wù)器可以定時(shí)向客戶發(fā)送最新的數(shù)據(jù)。
//cTagNameSeperator -- 標(biāo)識(shí)標(biāo)記名的層次分隔符,一般情況為 '/' ,也可以指定別的字符。
//				主要用來給眾多標(biāo)記分類。
typedef struct SOPCServerInfo
{
	UINT	uUpdateRate;
	DWORD	dwForceRefresh_Band;
	char	cTagNameSeperator;
} SOPCServerInfo;
///////////////////////////////////

extern "C" 
{
//GetTagCount/////////////////////////////////
//獲取組件內(nèi)標(biāo)記點(diǎn)的總數(shù)
//參數(shù):
//		無
//返回值:
//		返回標(biāo)記點(diǎn)的數(shù)量
unsigned GetTagCount();
///////////////////////////////////////////////////


//EXE_RegisterServer/////////////////////////////////////////////////
//注冊(cè)進(jìn)程外服務(wù)器
//參數(shù):
//		無
//返回值:
//		成功執(zhí)行返回S_OK,否則返回S_FAIL
HRESULT EXE_RegisterServer(void);
///////////////////////////////////////////////////


//EXE_UnregisterServer/////////////////////////////////////////////////
//注銷進(jìn)程外服務(wù)器
//參數(shù):
//		無
//返回值:
//		成功執(zhí)行返回S_OK,否則返回S_FAIL
HRESULT EXE_UnregisterServer(void);
///////////////////////////////////////////////////


//EXE_StartServer/////////////////////////////////////////////////
//啟動(dòng)進(jìn)程外服務(wù)器服務(wù)
//參數(shù):
//		無
//返回值:
//		成功執(zhí)行返回S_OK,否則返回S_FAIL
HRESULT EXE_StartServer(void);
///////////////////////////////////////////////////


//EXE_StopServer/////////////////////////////////////////////////
//停止進(jìn)程外服務(wù)器服務(wù)
//參數(shù):
//		無
//返回值:
//		成功執(zhí)行返回S_OK,否則返回S_FAIL
HRESULT EXE_StopServer(void);
///////////////////////////////////////////////////


//DLL_RegisterServer/////////////////////////////////////////////////
//注冊(cè)進(jìn)程內(nèi)服務(wù)器
//參數(shù):
//		無
//返回值:
//		成功執(zhí)行返回S_OK,否則返回S_FAIL
HRESULT DLL_RegisterServer(void);
///////////////////////////////////////////////////


//DLL_UnregisterServer/////////////////////////////////////////////////
//注銷進(jìn)程內(nèi)服務(wù)器
//參數(shù):
//		無
//返回值:
//		成功執(zhí)行返回S_OK,否則返回S_FAIL
HRESULT DLL_UnregisterServer(void);
///////////////////////////////////////////////////


//DLL_GetClassObject/////////////////////////////////////////////////
//調(diào)用進(jìn)程內(nèi)服務(wù)器類工廠。對(duì)于進(jìn)程外服務(wù)器只需調(diào)用EXE_ StartServer來啟動(dòng)服務(wù),
//而進(jìn)程內(nèi)服務(wù)器則由COM環(huán)境調(diào)用
//參數(shù):
//		rclsid-- 服務(wù)器組件類標(biāo)識(shí)符,類型同GUID,都是IID結(jié)構(gòu)。
//		riid	-- 接口變量參考,通常是標(biāo)識(shí)符IID_IClassFactory的接口。
//		ppv	-- 與類標(biāo)識(shí)符rclsid相關(guān)的接口對(duì)象指針的指針。
//返回值:
//		成功執(zhí)行返回S_OK,否則返回S_FAIL。

HRESULT DLL_GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv);
///////////////////////////////////////////////////



//DLL_CanUnloadNow/////////////////////////////////////////////////
//COM環(huán)境用來確定是否可以卸載服務(wù)器組件
//參數(shù):
//		無
//返回值:
//		返回S_OK則可以卸載,返回S_FAIL則不可以卸解
HRESULT DLL_CanUnloadNow(void);
///////////////////////////////////////////////////


//InitOPCServer/////////////////////////////////////////////////
//初始化OPCST工具。用于將服務(wù)器的相關(guān)參數(shù)及回調(diào)函數(shù)傳入OPCST
//參數(shù):
//hInstance-- 服務(wù)器運(yùn)行時(shí)的實(shí)例句柄。
//對(duì)于進(jìn)程內(nèi)組件,由庫入口函數(shù)DllMain(HANDLE hModule, DWORD ul_reason, LPVOID lpRes )的hModule參數(shù)給定。
//		對(duì)于進(jìn)行外組件(VC),由應(yīng)用程序類CWinApp的m_hInstance給定,可以通過AfxGetInstanceHandle 函數(shù)獲取,或者通過AfxGetApp()->m_hInstance獲取。
//pOPCServerInfo	-- 數(shù)據(jù)類型SOPCServerInfo的變量指針。
//pOPCRegInfo-- 數(shù)據(jù)類型SOPCRegisterInfo的變量指針。
//pVendorInfo	-- 數(shù)據(jù)類型SVendorInfo的變量指針。
//lpReadTag--讀取設(shè)備值的回調(diào)函數(shù)。類型聲明如下
//		bool ReadVariant( unsigned	devid, VARIANT	*value, const VARTYPE vtype);由開發(fā)者實(shí)現(xiàn),具體參考例程。
//lpWriteTag--更新設(shè)備值的回調(diào)函數(shù)。類型聲明如下
//		bool WriteVariant(unsigned devid, VARIANT *value );由開發(fā)者實(shí)現(xiàn),具體參考例程。
//返回值:
//		執(zhí)行成功返回S_OK,執(zhí)行失敗返回S_FALSE。
HRESULT InitOPCServer
(
	HINSTANCE		hInstance,
	SOPCServerInfo		*pOPCServerInfo,
	SOPCRegisterInfo	*pOPCRegInfo,
	SVendorInfo			*pVendorInfo,
	LPREADTAG		lpReadTag,
	LPWRITETAG		lpWriteTag
);
///////////////////////////////////////////////////


//AddOPCTag/////////////////////////////////////////////////
//用于向OPCDA服務(wù)器內(nèi)添加標(biāo)記點(diǎn)
//參數(shù):
//puOPCID -- 返回OPCST內(nèi)部的標(biāo)記點(diǎn)ID。
//uDevID -- 給定設(shè)備標(biāo)記點(diǎn)ID。作為OPCST讀取設(shè)備或更新設(shè)備標(biāo)記點(diǎn)的參數(shù)。必須唯一,否則將無法準(zhǔn)確讀取或更新設(shè)備標(biāo)記點(diǎn)
//sName 	-- 標(biāo)記點(diǎn)名稱。用于客戶程序的瀏覽、選取。必須唯一,否則無法添加。
//bWriteable 	-- 指定該標(biāo)記點(diǎn)是否可寫。false 只讀,true 可以讀寫
//tValue -- 一個(gè)VARIANT類型的變量,內(nèi)含標(biāo)記點(diǎn)數(shù)據(jù)類型及初始值信息。必須正確設(shè)置。
//range_min-- 標(biāo)記點(diǎn)的最小值。對(duì)于離散標(biāo)記點(diǎn),為0
//range_max-- 標(biāo)記點(diǎn)的最大值。對(duì)于離散標(biāo)記點(diǎn),為1
//返回值:
//		執(zhí)行成功返回S_OK,執(zhí)行失敗返回S_FALSE
HRESULT AddOPCTag
(
 unsigned			*puOPCID,
 const unsigned		uDevID,
 const char			*sName,
 const bool			bWriteable, 
 VARIANT			*tValue, 
 double				range_min,
 double				range_max
 ) ;
///////////////////////////////////////////////////
}
#endif



?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久新电视剧免费观看| 色婷婷久久久久swag精品 | 国产欧美日韩另类一区| 欧美性色欧美a在线播放| 国产传媒一区在线| 日韩福利视频网| 国产精品女主播在线观看| 欧美高清你懂得| 93久久精品日日躁夜夜躁欧美| 亚洲一区二区三区四区在线观看 | 一区二区三区免费观看| 日韩一区二区精品| proumb性欧美在线观看| 日本 国产 欧美色综合| 中文字幕一区二区三区在线播放| 欧美美女直播网站| 99re视频这里只有精品| 久久成人免费电影| 亚洲电影中文字幕在线观看| 中文字幕不卡在线| 欧美成人精品二区三区99精品| 91丨porny丨在线| 国产一区在线视频| 亚洲18色成人| 日韩伦理免费电影| 欧美精品一区二区三区一线天视频| 欧美在线视频你懂得| 岛国精品一区二区| 国模冰冰炮一区二区| 肉色丝袜一区二区| 一区二区三区不卡在线观看| 欧美国产一区二区在线观看| 日韩三级视频在线观看| 欧美三级电影在线观看| 高清视频一区二区| 狠狠色丁香九九婷婷综合五月| 日韩影视精彩在线| 午夜免费久久看| 亚洲精品国产高清久久伦理二区| 国产精品丝袜黑色高跟| 久久久亚洲精品一区二区三区| 日韩亚洲欧美高清| 91精品国产综合久久精品麻豆 | 26uuu亚洲| 欧美日韩在线直播| 色婷婷综合久色| 99免费精品在线观看| 国产成人99久久亚洲综合精品| 国内成人自拍视频| 精品一区二区影视| 久久国产精品免费| 久久99最新地址| 韩国一区二区在线观看| 久草在线在线精品观看| 国产综合一区二区| 亚洲图片欧美综合| 亚洲一区二区三区国产| 亚洲一级电影视频| 亚洲成人一二三| 日本成人在线不卡视频| 日韩精品乱码免费| 久久成人免费网站| 国产麻豆9l精品三级站| 国产高清精品久久久久| 成人福利在线看| 99国产精品国产精品毛片| 91在线你懂得| 欧美日韩一区二区三区视频 | 欧美精品一卡两卡| 欧美一区二区在线看| 欧美不卡激情三级在线观看| 欧美电影免费提供在线观看| 欧美精品一区二区不卡| 久久九九全国免费| 国产精品国产精品国产专区不蜜| 中文字幕日韩av资源站| 亚洲自拍偷拍综合| 日韩成人精品视频| 韩国视频一区二区| 成人蜜臀av电影| 欧美在线影院一区二区| 88在线观看91蜜桃国自产| www国产精品av| 国产精品欧美极品| 午夜成人免费电影| 国产精品99久| 日本高清不卡视频| 91精品一区二区三区久久久久久| 久久先锋资源网| 悠悠色在线精品| 激情都市一区二区| 色婷婷综合久久久中文字幕| 日韩欧美国产三级电影视频| 欧美国产视频在线| 无吗不卡中文字幕| 日韩一区二区免费在线观看| 久久久久久久久岛国免费| 一区二区三区日韩欧美| 久久精品国产第一区二区三区| 国产精品一区二区久久不卡 | 亚洲成人先锋电影| 国产成人在线免费观看| 欧美性受xxxx黑人xyx| 久久久精品国产免大香伊| 亚洲综合激情小说| 国产精品香蕉一区二区三区| 欧美性色黄大片| 中文字幕不卡的av| 奇米在线7777在线精品| 国产成人啪免费观看软件| 欧美中文字幕久久| 国产精品天干天干在观线| 日本伊人色综合网| www.欧美日韩国产在线| 精品国产乱码久久久久久久久| 亚洲女同一区二区| 国产制服丝袜一区| 欧美日韩精品专区| 亚洲日本va午夜在线电影| 麻豆国产精品官网| 欧美视频你懂的| 中文字幕日韩一区| 国产成人精品午夜视频免费| 91精品国产一区二区三区蜜臀| 亚洲伦理在线免费看| 国产一区二区三区免费观看| 91精品国产黑色紧身裤美女| 亚洲美女淫视频| 成人一级视频在线观看| 久久久影视传媒| 另类小说图片综合网| 欧美人与z0zoxxxx视频| 亚洲精品国产成人久久av盗摄| 成人a免费在线看| 久久亚洲二区三区| 国产一区中文字幕| 蜜臀精品久久久久久蜜臀| 欧美午夜一区二区三区| 亚洲视频资源在线| 久久99热狠狠色一区二区| 欧美三级中文字幕在线观看| 日韩美女视频一区二区| 高清成人免费视频| 久久丝袜美腿综合| 亚洲一区二区三区四区在线免费观看 | 欧美极品aⅴ影院| 麻豆精品视频在线| 精品久久久久久久人人人人传媒| 三级一区在线视频先锋 | 99re8在线精品视频免费播放| 国产日韩欧美a| 国产成人av一区二区三区在线观看| 2021久久国产精品不只是精品| 激情文学综合插| 久久亚洲一级片| 国产**成人网毛片九色 | 天天免费综合色| 欧美怡红院视频| 天天操天天干天天综合网| 欧美久久久一区| 激情欧美日韩一区二区| 337p粉嫩大胆噜噜噜噜噜91av| 国产乱理伦片在线观看夜一区| 国产午夜精品一区二区三区嫩草| 国产成人午夜精品影院观看视频| 国产欧美精品一区二区三区四区| 激情成人午夜视频| 欧美激情综合在线| av中文字幕在线不卡| 亚洲日韩欧美一区二区在线| 国产成人精品一区二区三区四区 | 欧美影视一区在线| 日韩av成人高清| 久久嫩草精品久久久精品| 成人精品鲁一区一区二区| 亚洲色图欧美偷拍| 欧美日韩小视频| 久久成人免费网站| 亚洲国产电影在线观看| 白白色亚洲国产精品| 一区二区高清视频在线观看| 中文一区二区在线观看| 久久国产婷婷国产香蕉| 亚洲成人一二三| 91麻豆成人久久精品二区三区| 亚洲国产高清aⅴ视频| 一本一道久久a久久精品综合蜜臀| 亚洲激情成人在线| 日韩西西人体444www| 成人性色生活片免费看爆迷你毛片| 亚洲激情在线播放| 欧美不卡视频一区| 91麻豆国产在线观看| 蜜桃视频一区二区| 国产精品第13页| 欧美一区二区在线不卡| 成人午夜av在线| 蜜桃视频在线观看一区| 亚洲视频中文字幕| 欧美变态口味重另类|