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

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

?? opcst_ipt.h

?? 使用OPCST開發(fā)的進(jìn)程內(nèi)OPCDA服務(wù)器(C++Builder)
?? 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要通過(guò)設(shè)備標(biāo)記ID來(lái)區(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要通過(guò)設(shè)備標(biāo)記ID來(lái)區(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ù)器版本及說(shuō)明
//wMajorVersion	-- 主版本號(hào)
//wMinorVersion	-- 次版本號(hào)
//wBuildNumber	-- 發(fā)布版本號(hào)
//wReserved		-- 保留
//VendorInfo64[64]	-- 服務(wù)器說(shuō)明
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ù)過(guò)期時(shí),服務(wù)器可以定時(shí)向客戶發(fā)送最新的數(shù)據(jù)。
//cTagNameSeperator -- 標(biāo)識(shí)標(biāo)記名的層次分隔符,一般情況為 '/' ,也可以指定別的字符。
//				主要用來(lái)給眾多標(biāo)記分類。
typedef struct SOPCServerInfo
{
	UINT	uUpdateRate;
	DWORD	dwForceRefresh_Band;
	char	cTagNameSeperator;
} SOPCServerInfo;
///////////////////////////////////

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


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


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


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


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


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


//DLL_UnregisterServer/////////////////////////////////////////////////
//注銷進(jìn)程內(nèi)服務(wù)器
//參數(shù):
//		無(wú)
//返回值:
//		成功執(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來(lái)啟動(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)境用來(lái)確定是否可以卸載服務(wù)器組件
//參數(shù):
//		無(wú)
//返回值:
//		返回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)組件,由庫(kù)入口函數(shù)DllMain(HANDLE hModule, DWORD ul_reason, LPVOID lpRes )的hModule參數(shù)給定。
//		對(duì)于進(jìn)行外組件(VC),由應(yīng)用程序類CWinApp的m_hInstance給定,可以通過(guò)AfxGetInstanceHandle 函數(shù)獲取,或者通過(guò)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ù)。必須唯一,否則將無(wú)法準(zhǔn)確讀取或更新設(shè)備標(biāo)記點(diǎn)
//sName 	-- 標(biāo)記點(diǎn)名稱。用于客戶程序的瀏覽、選取。必須唯一,否則無(wú)法添加。
//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



?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av国产精品久久久久| 一区二区三区日韩在线观看| 丰满放荡岳乱妇91ww| 国产精品久久久久桃色tv| 亚洲伊人色欲综合网| 国产91在线观看| 亚洲黄色免费电影| 日韩欧美不卡一区| 99精品在线观看视频| 亚洲视频网在线直播| 欧美高清一级片在线| 狠狠色狠狠色合久久伊人| 久久综合资源网| 欧美日韩在线直播| 国产不卡在线视频| 午夜私人影院久久久久| 日本一区二区电影| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲黄网站在线观看| 日韩一区二区三| 一本到一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲欧美日韩国产一区二区三区 | 欧美大片拔萝卜| 不卡的av在线| 激情综合网最新| 亚洲国产精品嫩草影院| 国产精品丝袜一区| 欧美一区二区三区日韩| 色婷婷香蕉在线一区二区| 国产精品123区| 久久国产视频网| 亚洲一二三专区| 久久久www免费人成精品| 欧美一级精品大片| 欧美午夜免费电影| 日韩avvvv在线播放| 亚洲伦理在线精品| 国产精品毛片a∨一区二区三区| 成人不卡免费av| 精品一区二区久久久| 中文字幕第一区第二区| 56国语精品自产拍在线观看| 91欧美激情一区二区三区成人| 亚洲蜜臀av乱码久久精品蜜桃| 欧美三片在线视频观看| 91丨porny丨国产入口| 一区二区三区免费网站| 久久久久久一二三区| 日韩一区二区在线看| 丁香婷婷深情五月亚洲| 国产一区二区不卡在线| 精品一区二区在线播放| 免费不卡在线视频| 日本不卡一区二区三区高清视频| 精品国产一区二区三区忘忧草| 成人av网站在线| 成人动漫中文字幕| av午夜一区麻豆| 97精品久久久午夜一区二区三区| 日本一道高清亚洲日美韩| 亚洲欧美日韩中文播放 | 高清国产午夜精品久久久久久| 亚洲激情欧美激情| 一区二区三区 在线观看视频| 欧美精品一区二区在线播放| 日韩欧美国产麻豆| 久久久九九九九| 亚洲国产成人在线| 26uuu国产一区二区三区| 欧美视频一区二区在线观看| 日韩欧美国产系列| 在线观看日韩av先锋影音电影院| 久久超级碰视频| 九九国产精品视频| av综合在线播放| 91成人在线免费观看| 日本黄色一区二区| 白白色 亚洲乱淫| 91亚洲精品久久久蜜桃| 欧美视频中文字幕| 日韩午夜电影在线观看| 久久精品夜夜夜夜久久| 中文字幕一区在线观看视频| 一区二区三区电影在线播| 亚洲一区二区三区自拍| 麻豆91精品视频| 国产99久久精品| 欧美日韩一级视频| 亚洲精品一区二区三区影院 | 欧美精品电影在线播放| 欧美一级国产精品| 色综合av在线| 日韩一区二区免费视频| 国产日本一区二区| 亚洲自拍欧美精品| 一区二区三区欧美视频| 亚洲人123区| 美脚の诱脚舐め脚责91| 婷婷开心激情综合| 亚洲线精品一区二区三区八戒| 国产精品福利一区二区三区| 一区二区国产视频| 国产主播一区二区| 欧美性受极品xxxx喷水| 欧美久久免费观看| 欧美高清在线精品一区| 欧美变态tickling挠脚心| 欧美日韩激情一区二区三区| 精品国产sm最大网站免费看| 亚洲欧美日韩综合aⅴ视频| 亚洲另类春色国产| 国产一区在线看| 7777精品伊人久久久大香线蕉经典版下载 | 中文字幕第一区二区| 婷婷六月综合亚洲| 99精品在线观看视频| 欧美精品一区二区三区在线| 亚洲成人免费影院| 成人亚洲一区二区一| 成人教育av在线| 日韩一级在线观看| 亚洲人成网站色在线观看| 狠狠色狠狠色综合系列| 毛片av中文字幕一区二区| 美女尤物国产一区| 欧美在线观看18| 91麻豆精品久久久久蜜臀| 69久久99精品久久久久婷婷| 亚洲精品欧美二区三区中文字幕| 一区二区三区高清在线| 亚洲无人区一区| 不卡av在线网| 国产亚洲综合在线| 国产精品久久免费看| 久久国产精品99久久久久久老狼| 国产毛片一区二区| 欧美中文字幕久久| 国产亚洲精品bt天堂精选| 五月婷婷另类国产| 欧美性色欧美a在线播放| 中文字幕一区二区三区四区不卡| 亚洲一区二区欧美日韩| 免费精品99久久国产综合精品| 国产精品一色哟哟哟| 色婷婷av一区二区三区软件| 中文字幕一区在线观看视频| 一区二区久久久| 日本精品免费观看高清观看| 亚洲色图视频免费播放| 成人国产精品免费观看| 久久久久国产免费免费| 国产一区激情在线| 色综合久久66| 一级日本不卡的影视| 色94色欧美sute亚洲线路一久| 欧美色电影在线| 亚洲不卡av一区二区三区| 欧美色区777第一页| 亚洲成av人片www| 在线播放中文字幕一区| 天天综合色天天综合色h| 91麻豆精品国产91久久久资源速度 | 国产iv一区二区三区| 亚洲婷婷综合色高清在线| 欧美三级蜜桃2在线观看| 久久精品国产精品亚洲精品| 国产欧美日韩精品a在线观看| 久久国产精品无码网站| 亚洲欧洲性图库| 欧美精品日韩一本| 国产一区二区剧情av在线| 欧美一级黄色录像| 成人免费毛片高清视频| 一区二区三区不卡视频在线观看| 91丝袜高跟美女视频| 日产国产高清一区二区三区 | 国产成人精品免费在线| 一区二区久久久久久| 精品久久久久一区| 99精品视频在线播放观看| 日韩精彩视频在线观看| 国产精品热久久久久夜色精品三区| 国产一区二区精品在线观看| 亚洲精品自拍动漫在线| 91麻豆国产精品久久| 久草热8精品视频在线观看| 亚洲精品免费电影| xvideos.蜜桃一区二区| 91国产免费观看| 国产老肥熟一区二区三区| 天天综合网 天天综合色| 日韩理论电影院| 久久精品一区二区| 在线不卡a资源高清| 色婷婷久久久久swag精品| 国产精品888| 中文字幕亚洲区| 久久天堂av综合合色蜜桃网| 国产成人在线免费观看|