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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? impipersistfile.cpp

?? 基于Intellution開發包的開發的OPC服務器
?? CPP
字號:
//	ImpIPersistFile.cpp
//
//  This file contains the implementation of 
//  the IPersistFile interface for the XXX server.
//
//
//	(c) COPYRIGHT 1996-1998, INTELLUTION INC.
// ALL RIGHTS RESERVED
//
//
//	Functions defined in this module:
//
//			CImpIPersistFile::CImpIPersistFile()
//			CImpIPersistFile::~CImpIPersistFile()
//			CImpIPersistFile::AddRef()
//			CImpIPersistFile::Release()
//			CImpIPersistFile::QueryInterface()
//			CImpIPersistFile::GetClassID()
//			CImpIPersistFile::IsDirty()
//			CImpIPersistFile::Load()
//			CImpIPersistFile::Save()
//			CImpIPersistFile::SaveCompleted()
//			CImpIPersistFile::GetCurFile()
//
//
//
// Modification Log:
//	Vers	Date     By		Notes
//	----	-------- ---	-----
//	1.0		08/26/97 jra	Created
//	1.3		03/10/98 jra	Modified to be wizard generated and driver specific.
//
//

#define WIN32_LEAN_AND_MEAN

#include "OpcStdAfx.h"
#include "OPC.h"


extern TCHAR	*g_tszAcronym;
extern IMalloc	*pIMalloc;
extern HRESULT GetServerClassID(CLSID *pClassID);

/////////////////////////////////////////////////////////////////////////////
// Constructor /Destructor functions
//

////////////////////////////////////////////////////////////////
// CImpIPersistFile()
//
// Constructor for this Interface
//
////////////////////////////////////////////////////////////////
CImpIPersistFile::CImpIPersistFile(LPUNKNOWN pUnkOuter)
{
	m_pUnkOuter		= pUnkOuter;
	m_pParentServer	= (COPCDrvServer *)pUnkOuter;
}



////////////////////////////////////////////////////////////////
// ~CImpIPersistFile()
//
// Destructor for this Interface
//
////////////////////////////////////////////////////////////////
CImpIPersistFile::~CImpIPersistFile(void)
{
	m_pParentServer->m_pCImpIPersistFile = NULL;
}


/////////////////////////////////////////////////////////////////////////////
// IUnknown functions Delegate to Parent.
//

////////////////////////////////////////////////////////////////
// AddRef()
//
////////////////////////////////////////////////////////////////
STDMETHODIMP_(ULONG) CImpIPersistFile::AddRef(void)
{
	return m_pUnkOuter->AddRef();
}


////////////////////////////////////////////////////////////////
// Release()
//
////////////////////////////////////////////////////////////////
STDMETHODIMP_(ULONG) CImpIPersistFile::Release(void)
{
	return m_pUnkOuter->Release(); 
}


////////////////////////////////////////////////////////////////
// QueryInterface()
//
////////////////////////////////////////////////////////////////
STDMETHODIMP CImpIPersistFile::QueryInterface(REFIID	iid, 
											  LPVOID	*ppInterface)
{
	return m_pUnkOuter->QueryInterface(iid, ppInterface);
}


/////////////////////////////////////////////////////////////////////////////
// CImpIPersistFile (IPersisFile) interface functions
//


////////////////////////////////////////////////////////////////
// CImpIPersistFile::GetClassID()
//
////////////////////////////////////////////////////////////////
STDMETHODIMP	CImpIPersistFile::GetClassID(CLSID *pClassID)
{
	// Simply return the class ID defined in DLLMAIN.cpp
	return GetServerClassID(pClassID);
}


////////////////////////////////////////////////////////////////
// CImpIPersistFile::IsDirty()
//
////////////////////////////////////////////////////////////////
STDMETHODIMP	CImpIPersistFile::IsDirty(void)
{
	// We currently don't have a way to determine the dirty bit in
	// the I/O server, so we can play it safe and return that it
	// needs to be saved.
	//
	return S_OK;
}

        
////////////////////////////////////////////////////////////////
// CImpIPersistFile::Load()
//
////////////////////////////////////////////////////////////////
STDMETHODIMP	CImpIPersistFile::Load(LPCOLESTR	pszFileName,
									   DWORD		dwMode)
{
	if (NULL == pszFileName)
	{
		return E_INVALIDARG;
	}


	HRESULT	hr = S_OK;
	CString szFileName	= pszFileName;
	BSTR	bszFileName = szFileName.AllocSysString();

	if (NULL == bszFileName)
	{
		return E_OUTOFMEMORY;
	}

	// Make sure this file is the correct format
	//
	int nIndex;
	if (-1 != (nIndex = szFileName.FindOneOf(".")))
	{
		CString	szExtension = szFileName.Mid(nIndex + 1);
		if (szExtension != g_tszAcronym)
		{
			return OPC_E_INVALIDCONFIGFILE;
		}
	}

	// Open the file in the server.
	//
	if (FAILED(m_pParentServer->m_pIDriver->FileOpen(bszFileName)))
	{
		hr = E_FAIL;
	}
	SysFreeString(bszFileName);

	return hr;
}

        
////////////////////////////////////////////////////////////////
// CImpIPersistFile::Save()
//
////////////////////////////////////////////////////////////////
STDMETHODIMP	CImpIPersistFile::Save(LPCOLESTR	pszFileName,
									   BOOL			bRemember)
{
	if (NULL == pszFileName)
	{
		return E_INVALIDARG;
	}

	HRESULT	hr = S_OK;
	CString	szFileName = pszFileName;
	BSTR	bszFileName = szFileName.AllocSysString();

	if (NULL == bszFileName)
	{
		return E_OUTOFMEMORY;
	}

	// Do the save in the server
	//
	if (FAILED(m_pParentServer->m_pIDriver->FileSaveAs(bszFileName)))
	{
		hr = E_FAIL;
	}
	SysFreeString(bszFileName);

	// If the client wants this to be the new default file, then set it as such
	//
	if (bRemember)
	{
		if (FAILED(m_pParentServer->m_pIDriver->put_DefaultConfigFileName(bszFileName)))
		{
			hr = E_FAIL;
		}
	}

	return hr;
}

        
////////////////////////////////////////////////////////////////
// CImpIPersistFile::SaveCompleted()
//
////////////////////////////////////////////////////////////////
STDMETHODIMP	CImpIPersistFile::SaveCompleted(LPCOLESTR pszFileName)
{
	return S_OK;
}

        
////////////////////////////////////////////////////////////////
// CImpIPersistFile::GetCurFile()
//
////////////////////////////////////////////////////////////////
STDMETHODIMP	CImpIPersistFile::GetCurFile(LPOLESTR *ppszFileName)
{
	BSTR		bszFileName;
	CString		szFileName;
	int			nLength = 0;
	HRESULT		hr = S_OK;


	if ((NULL == ppszFileName) || (NULL == pIMalloc))
	{
		return E_FAIL;
	}

	// Call the I/O server for the config name that is currently loaded.
	//
	if (FAILED(m_pParentServer->m_pIDriver->get_FullConfigFileName(&bszFileName)))
	{
		hr = E_FAIL;
	}

	// Get the string as a CString and free the BSTR memory.
	//
	szFileName	= bszFileName;
	nLength		= szFileName.GetLength();
	SysFreeString(bszFileName);

	// Allocate our memory using the default task allocator.
	// Then initialize and copy the CString's buffer to be returned to the caller.
	//
	*ppszFileName = (OLECHAR *)pIMalloc->Alloc(sizeof(OLECHAR) * (nLength + 1));
	memset(*ppszFileName, NULL, sizeof(OLECHAR) * (nLength + 1));
	mbstowcs(*ppszFileName, szFileName.GetBuffer(nLength + 1), nLength);
	szFileName.ReleaseBuffer();
	return hr;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲综合另类| 日日夜夜精品视频免费| 日韩福利电影在线| 9色porny自拍视频一区二区| 91精品国产欧美一区二区成人| 亚洲色大成网站www久久九九| 激情久久五月天| 欧美日韩国产免费| 亚洲精品第一国产综合野| 国产成都精品91一区二区三| 欧美成人video| 午夜国产不卡在线观看视频| 色综合天天综合| 中文字幕第一页久久| 国产一区二区三区视频在线播放| 欧美久久久久久久久中文字幕| 亚洲另类一区二区| av亚洲精华国产精华| 欧美国产在线观看| 国产成人在线视频免费播放| 欧美v国产在线一区二区三区| 日产国产欧美视频一区精品| 欧美三区在线视频| 亚洲午夜久久久久久久久电影网| 一本一道波多野结衣一区二区| 中文字幕av一区二区三区免费看| 国产美女娇喘av呻吟久久| 日韩一区二区三区电影| 蜜桃91丨九色丨蝌蚪91桃色| 欧美丰满美乳xxx高潮www| 午夜一区二区三区在线观看| 欧美天堂一区二区三区| 亚洲成人中文在线| 欧美顶级少妇做爰| 人人狠狠综合久久亚洲| 日韩一区二区三区三四区视频在线观看 | 精品电影一区二区三区| 日本不卡不码高清免费观看| 91精品国产综合久久精品| 美脚の诱脚舐め脚责91| 精品国一区二区三区| 国产一区二区免费看| 国产精品全国免费观看高清| av成人动漫在线观看| 亚洲综合在线免费观看| 777欧美精品| 精品一区二区成人精品| 亚洲国产成人一区二区三区| 91小视频在线| 日韩电影免费在线观看网站| 日韩欧美综合一区| 风间由美一区二区三区在线观看| |精品福利一区二区三区| 欧美性大战xxxxx久久久| 另类小说综合欧美亚洲| 欧美激情综合在线| 欧美探花视频资源| 狠狠色伊人亚洲综合成人| 国产精品国产三级国产有无不卡| 日本高清无吗v一区| 麻豆免费看一区二区三区| 欧美激情中文不卡| 欧美日韩久久不卡| 国产一区二区三区免费| 樱桃视频在线观看一区| 日韩欧美激情四射| 色狠狠桃花综合| 精品亚洲porn| 一区二区三区中文字幕电影| 欧美成人艳星乳罩| 色偷偷一区二区三区| 久久91精品久久久久久秒播| 亚洲卡通欧美制服中文| 欧美一区二区在线看| 成人激情电影免费在线观看| 日韩在线一区二区三区| 亚洲婷婷综合久久一本伊一区 | 91精品办公室少妇高潮对白| 久久99精品久久久久久久久久久久| 亚洲欧洲日韩av| xnxx国产精品| 4438x亚洲最大成人网| 91视频观看免费| 黄一区二区三区| 日韩一区精品字幕| 亚洲乱码国产乱码精品精小说| 精品国产制服丝袜高跟| 777久久久精品| 91国偷自产一区二区开放时间| 成人午夜看片网址| 久久99精品一区二区三区| 视频一区在线播放| 夜色激情一区二区| 亚洲乱码国产乱码精品精可以看| 欧美韩日一区二区三区| 精品国产乱码久久久久久蜜臀| 一本一道久久a久久精品| 黄色资源网久久资源365| 国产精品午夜久久| 日韩欧美国产精品| 91精品国产综合久久精品图片| 色噜噜狠狠色综合欧洲selulu| 不卡视频在线看| 国产成人福利片| 国产成人综合自拍| 国产激情一区二区三区四区| 国内成+人亚洲+欧美+综合在线| 日韩电影在线一区二区| 日韩vs国产vs欧美| 日本在线观看不卡视频| 午夜激情综合网| 午夜精品久久久久久久| 日韩高清在线电影| 蜜臀av性久久久久蜜臀aⅴ流畅| 天堂一区二区在线免费观看| 亚洲成人资源在线| 青青草伊人久久| 久久99国产精品尤物| 国产精品自拍毛片| 成人免费看黄yyy456| 99久久精品久久久久久清纯| 91在线小视频| 欧美性生活一区| 欧美日韩国产色站一区二区三区| 制服丝袜av成人在线看| 欧美videossexotv100| 精品国产第一区二区三区观看体验 | www.亚洲国产| 色综合久久66| 欧美区一区二区三区| 日韩欧美在线不卡| 亚洲国产高清在线| 亚洲午夜久久久久久久久电影院 | 成人一级黄色片| 91福利视频久久久久| 91精品国产欧美一区二区| 久久亚洲精品小早川怜子| 国产精品色呦呦| 亚洲成人你懂的| 国产九色精品成人porny| 91免费视频网| 777奇米成人网| 欧美国产一区视频在线观看| 一区二区三区中文免费| 美女国产一区二区| 成人视屏免费看| 3751色影院一区二区三区| 国产亚洲视频系列| 亚洲一区在线观看视频| 精品一二线国产| 91福利精品视频| 久久婷婷国产综合精品青草| 一区二区三区色| 国产在线精品一区二区三区不卡| 色综合色综合色综合色综合色综合| 欧美一区二区视频在线观看2020 | 一个色在线综合| 国产一区二区剧情av在线| 日本精品视频一区二区| 精品国产精品一区二区夜夜嗨| 一区二区三区不卡视频 | 国产精品嫩草影院av蜜臀| 日韩高清欧美激情| 91浏览器入口在线观看| 欧美成人免费网站| 亚洲国产欧美一区二区三区丁香婷| 国产一区二区福利| 欧美久久久久久久久| 亚洲精品自拍动漫在线| 国产精品18久久久久久vr| 欧美日韩国产综合视频在线观看 | 蜜桃av一区二区| 精品视频全国免费看| 国产精品家庭影院| 国产一区二区在线观看免费| 欧美久久久久久久久| 亚洲人成小说网站色在线 | 欧美吻胸吃奶大尺度电影| 国产精品丝袜91| 国产精品中文字幕日韩精品| 日韩亚洲国产中文字幕欧美| 一区二区三区精品在线观看| av不卡一区二区三区| 国产精品毛片高清在线完整版| 国产一区二区精品久久| 日韩欧美第一区| 日本不卡一区二区| 欧美日韩视频在线一区二区| 综合久久国产九一剧情麻豆| 懂色av一区二区夜夜嗨| 久久老女人爱爱| 狠狠色丁香九九婷婷综合五月| 欧美一区二区精品| 麻豆精品一区二区综合av| 欧美一区二区视频观看视频| 日本三级韩国三级欧美三级| 在线成人av网站| 免费美女久久99| 2019国产精品| 成人免费av网站|