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

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

?? grouppropertysheet.cpp

?? OPC客戶端源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
					m_pGroup->IsIAsyncIOSupported () ? strYes : strNo);				
				break;

			// IDataObject
			case 5:
				// Insert interface item in list control:
				pList->InsertItem (nIndex, _T ("IDataObject"), ILI_INTERFACE);
				
				// Set required field:
				pList->SetItemText (nIndex, 1, strYes);					

				// Set supported field:
				pList->SetItemText (nIndex, 2, 
					m_pGroup->IsIDataObjectSupported () ? strYes : strNo);				
				break;

			// IOPCAsyncIO2
			case 6:
				// Insert interface item in list control:
				pList->InsertItem (nIndex, _T ("IOPCAsyncIO2 (2.0 only)"), ILI_INTERFACE);
				
				// Set required field:
				pList->SetItemText (nIndex, 1, strYes);						

				// Set supported field:
				pList->SetItemText (nIndex, 2, 
					m_pGroup->IsIAsyncIO2Supported () ? strYes : strNo);				
				break;

			// IConnectionPointContainer
			case 7:
				// Insert interface item in list control:
				pList->InsertItem (nIndex, _T ("IConnectionPointContainer (2.0 only)"), ILI_INTERFACE);	
				
				// Set required field:
				pList->SetItemText (nIndex, 1, strYes);										

				// Set supported field:
				pList->SetItemText (nIndex, 2, 
					m_pGroup->IsIConnectionPointContainerSupported () ? strYes : strNo);				
				break;

			default:
				// Unexpected interface index.  Programmer error.
				ASSERT (FALSE);
				break;
			}

		// Increment interface index for next time around:
		nIndex++;
		}

	// return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
	return (TRUE);  
	}


/////////////////////////////////////////////////////////////////////////////
// CKGroupPropertySheet
/////////////////////////////////////////////////////////////////////////////

IMPLEMENT_DYNAMIC (CKGroupPropertySheet, CPropertySheet)

// **************************************************************************
BEGIN_MESSAGE_MAP (CKGroupPropertySheet, CPropertySheet)
	//{{AFX_MSG_MAP(CKGroupPropertySheet)
	ON_BN_CLICKED (ID_APPLY_NOW, OnApplyNow)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP ()


// **************************************************************************
// CKGroupPropertySheet ()
//
// Description:
//	Constructor for creating a new group object.
//
// Parameters:
//  CKServer	*pServer		Pointer to server object.
//
// Returns:
//  none
// **************************************************************************
CKGroupPropertySheet::CKGroupPropertySheet (CKServer *pServer)
	: CPropertySheet (IDS_GROUP_PROPERTIES)
	{
	// Server should have been specified:
	ASSERT (pServer != NULL);

	// Initialize member variables:
	m_pServer = pServer;
	m_pGroup = NULL;

	// Add general page:
	AddPage (&m_cGeneralPage);

	// Remove apply button for group creation (This contructor version will
	// only be used when a new group is being created).
	m_psh.dwFlags |= PSH_NOAPPLYNOW;
	}

// **************************************************************************
// CKGroupPropertySheet ()
//
// Description:
//	Constructor for editing an existing group object.
//
// Parameters:
//  CKGroup		*pGroup		Pointer to group object.
//
// Returns:
//  none
// **************************************************************************
CKGroupPropertySheet::CKGroupPropertySheet (CKGroup *pGroup)
	: CPropertySheet (IDS_GROUP_PROPERTIES)
	{
	// Group should have been specified:
	ASSERT (pGroup != NULL);

	// Initialize member variables:
	m_pGroup = pGroup;
	m_pServer = NULL;
	
	HRESULT hr = E_FAIL;
	OPCHANDLE hClient;
	OPCHANDLE hServer;
	LPWSTR pszName;

	IOPCGroupStateMgt* pIGSM = m_pGroup->GetIGroupStateMgt ();

	// Get the OPC Group state as known by the server:
	if (pIGSM != NULL)
		{
		hr = pIGSM->GetState (
			&m_cGeneralPage.m_dwUpdateRate,
			&m_cGeneralPage.m_bActive,
			&pszName,
			&m_cGeneralPage.m_lBias,
			&m_cGeneralPage.m_fDeadband,
			&m_cGeneralPage.m_dwLanguageID,
			&hClient,
			&hServer);

		if (SUCCEEDED (hr))
			{
			ASSERT (hClient == (OPCHANDLE) pGroup);

			// Save and free group name:
			if (pszName)
				{
				m_cGeneralPage.m_strName = pszName;
				CoTaskMemFree (pszName);
				}
			}
		}

	// Else use the state currently set for the CKGroup object:
	else
		{
		m_cGeneralPage.m_strName = m_pGroup->GetName ();
		m_cGeneralPage.m_dwUpdateRate = m_pGroup->GetUpdateRate ();
		m_cGeneralPage.m_bActive = m_pGroup->IsActive ();
		m_cGeneralPage.m_lBias = m_pGroup->GetBias ();
		m_cGeneralPage.m_fDeadband = m_pGroup->GetDeadband ();
		m_cGeneralPage.m_dwLanguageID = m_pGroup->GetLanguageID ();
		}

	m_cGeneralPage.m_nUpdateMethod	= m_pGroup->GetUpdateMethod ();

	// Add general page:
	AddPage (&m_cGeneralPage);

	// Pass a pointer to the supported interface page:
	m_cInterfacePage.m_pGroup = m_pGroup;

	// Add the interface page:
	AddPage (&m_cInterfacePage);
	}

// **************************************************************************
/// ~CKGroupPropertySheet ()
//
// Description:
//	Destructor
//
// Parameters:
//  none
//
// Returns:
//  none
// **************************************************************************
CKGroupPropertySheet::~CKGroupPropertySheet ()
	{
	}


/////////////////////////////////////////////////////////////////////////////
// CKGroupPropertySheet message handlers
/////////////////////////////////////////////////////////////////////////////

// **************************************************************************
// DoModal ()
//
// Description:
//	Augment DoModal behaviour of dialog.  Create new group object if
//	necessary.  Apply changes to object properties.
//
// Parameters:
//  none
//
// Returns:
//  int - IDOK, IDCANCEL.
// **************************************************************************
int CKGroupPropertySheet::DoModal () 
	{
	// Perform default processing:
	int nRC = CPropertySheet::DoModal ();

	// If the user selects "OK" add/modify group:
	if (nRC == IDOK)
		{
		// If m_pGroup is NULL, we need to create a new group:
		if (m_pGroup == NULL)
			{
			ASSERT (m_pServer != NULL);

			try
				{
				// Instantiate a new CKGroup:
				m_pGroup = new CKGroup (m_pServer);
				}
			
			catch (...)
				{
				// If problem, delete the group and return with IDCANCEL code:
				ASSERT (FALSE);

				m_pGroup = NULL;
				return (IDCANCEL);
				}
			}
		
		// Otherwise apply changes to existing group:
		else
			OnApplyNow ();

		// Set attributes from general page:

		// Create name if currently undefined:
		if (m_cGeneralPage.m_strName.IsEmpty ())
			{
			if (!m_pServer || !m_pServer->IsAlive ())
				{
				m_cGeneralPage.m_strName = DEFAULTGROUPNAME;
				m_pServer->GenerateGroupName (m_cGeneralPage.m_strName);
				}
			}

		m_pGroup->SetName (m_cGeneralPage.m_strName);
		m_pGroup->SetActive (m_cGeneralPage.m_bActive);
		m_pGroup->SetLanguageID (m_cGeneralPage.m_dwLanguageID);
		m_pGroup->SetDeadband (m_cGeneralPage.m_fDeadband);
		m_pGroup->SetBias (m_cGeneralPage.m_lBias);
		m_pGroup->SetUpdateRate (m_cGeneralPage.m_dwUpdateRate);
		m_pGroup->SetUpdateMethod (m_cGeneralPage.m_nUpdateMethod);

		// If this is a new group (indicated by non-NULL m_pServer),
		// add it to the server:
		if (m_pServer)
			m_pServer->AddGroup (m_pGroup);
		}

	// Pass along return code from default processing:
	return (nRC);
	}

// **************************************************************************
// OnApplyNow ()
//
// Description:
//	Apply changes to group object properties.
//
// Parameters:
//  none
//
// Returns:
//  void
// **************************************************************************
void CKGroupPropertySheet::OnApplyNow ()
	{
	// See if there are any changes to apply:
	if (m_cGeneralPage.IsChanged ())
		{
		// Force an update data:
		if (m_cGeneralPage.m_hWnd)
			m_cGeneralPage.UpdateData (TRUE);
		
		// Get the group state management interface:
		ASSERT (m_pGroup != NULL);
		IOPCGroupStateMgt* pIGSM = m_pGroup->GetIGroupStateMgt ();

		// Set OPC Group state:
		if (pIGSM)
			{
			HRESULT hr = E_FAIL;
			DWORD dwRevUpdateRate = 0;					// for [out] args

			OPCHANDLE hClient = (OPCHANDLE) m_pGroup;	// keep same client handle
			OPCHANDLE hServer;
			LPWSTR pszName;

			// Set the state based on current settings:
			hr = pIGSM->SetState ( 
				&m_cGeneralPage.m_dwUpdateRate,		// update rate
				&dwRevUpdateRate,					// revised update rate
				&m_cGeneralPage.m_bActive,			// active state
				&m_cGeneralPage.m_lBias,			// time bias
				&m_cGeneralPage.m_fDeadband,		// deadband
				&m_cGeneralPage.m_dwLanguageID,		// language id
				&hClient);

			ASSERT (SUCCEEDED (hr));

			// Allocate memorty to contain the name of the group:
			pszName = (LPWSTR) CoTaskMemAlloc ((m_cGeneralPage.m_strName.GetLength () + 1) *
				sizeof (WCHAR));

			// Set the group name:
			if (pszName)
				{
				// COM requires that all string be in UNICODE format, so 
				// conversion may be necessary.
#ifdef _UNICODE
				// This is a UNICODE build, so no need to convert.  Just copy
				// our name to output buffer:
				lstrcpyn (pszName, m_cGeneralPage.m_strName, m_cGeneralPage.m_strName.GetLength () + 1);
#else
				// This is an ANSI build, so convert to UNICODE and place
				// result in output buffer:
				_mbstowcsz (pszName, m_cGeneralPage.m_strName, m_cGeneralPage.m_strName.GetLength () + 1);
#endif
				// Set the name:
				pIGSM->SetName (pszName);

				// Free the memory allocated for the name:
				CoTaskMemFree (pszName);
				}

			// Now get the state to verify that the server changed our settings:
			hr = pIGSM->GetState (
				&m_cGeneralPage.m_dwUpdateRate,
				&m_cGeneralPage.m_bActive,
				&pszName,
				&m_cGeneralPage.m_lBias,
				&m_cGeneralPage.m_fDeadband,
				&m_cGeneralPage.m_dwLanguageID,
				&hClient,
				&hServer);

			ASSERT (SUCCEEDED (hr));
			ASSERT (hClient == (OPCHANDLE) m_pGroup);
			ASSERT (hServer == m_pGroup->GetServerHandle ());

			// Get and free group name:
			if (pszName)
				{
				m_cGeneralPage.m_strName = pszName;
				CoTaskMemFree (pszName);
				}

			// Gransfer get state data to dialog if it is not closing from an OK:
			if (m_cGeneralPage.m_hWnd)
				m_cGeneralPage.UpdateData (FALSE);
			}

		// Set changed flag:
		m_cGeneralPage.SetChanged (false);
		}
	}

// **************************************************************************
// OnInitDialog ()
//
// Description:
//	Called by framework immediately before the dialog box is displayed,
//
// Parameters:
//  none
//
// Returns:
//  BOOL - Result of base class processing.
// **************************************************************************
BOOL CKGroupPropertySheet::OnInitDialog () 
	{
	// Perform default processing:
	BOOL bResult = CPropertySheet::OnInitDialog ();
	
	// Append item count to title:
	if (m_pGroup)
		{
		// Get current title text:
		CString strTitle;
		GetWindowText (strTitle);

		// Format a string to contain item count:
		CString strItemCount;
		strItemCount.Format (IDS_APPENDITEMCOUNT, m_pGroup->GetItemCount ());

		// Append count to tile:
		strTitle += strItemCount;

		// Set window title to modified:
		SetWindowText (strTitle);
		}

	// Return result from default processing:
	return (bResult);
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美这里有精品| 欧美不卡视频一区| 欧美一级精品在线| 精品国产乱码91久久久久久网站| 久久尤物电影视频在线观看| 国产欧美一区二区在线| 中文字幕色av一区二区三区| 亚洲高清在线精品| 久久91精品久久久久久秒播| 国产精品一区二区男女羞羞无遮挡| 国产精品1区2区3区| 欧美日韩一区三区| 欧美国产1区2区| 亚洲一卡二卡三卡四卡| 美女视频一区二区| 国产精品1024久久| 欧美吻胸吃奶大尺度电影| 欧美一区二区三区系列电影| 国产性色一区二区| 夜色激情一区二区| 国产麻豆成人精品| 欧美色视频在线| 国产亚洲1区2区3区| 日韩精品电影在线观看| 成人一区二区视频| 欧美一区二区三区免费视频| 亚洲精品免费视频| 国产成人啪午夜精品网站男同| 91福利视频网站| 久久久五月婷婷| 日本亚洲视频在线| 色成人在线视频| 国产精品日产欧美久久久久| 精品一区二区三区影院在线午夜| 91论坛在线播放| 久久久精品蜜桃| 久久激情五月激情| 欧美日韩亚洲综合一区二区三区| 欧美国产国产综合| 国产一区二区三区电影在线观看| 欧美日韩精品免费| 亚洲综合一二三区| 色噜噜久久综合| 亚洲同性同志一二三专区| 精品一区二区三区日韩| 制服丝袜日韩国产| 亚洲成人av电影在线| 欧美影片第一页| 亚洲国产一区二区三区青草影视 | 国产九九视频一区二区三区| 欧美二区三区91| 青青草国产精品97视觉盛宴| 51精品秘密在线观看| 全部av―极品视觉盛宴亚洲| 欧美视频一区在线| 亚洲一区二区三区在线看| 欧美在线视频不卡| 丝袜美腿亚洲综合| 制服丝袜国产精品| 狠狠色2019综合网| 国产精品久久久久久久久快鸭| jlzzjlzz国产精品久久| 亚洲三级免费电影| 欧美日韩日日骚| 国产最新精品免费| 久久九九影视网| 成人短视频下载| 一区二区视频在线| 久久伊人中文字幕| 色噜噜偷拍精品综合在线| 日韩av在线发布| 18涩涩午夜精品.www| 欧美日韩国产高清一区二区三区 | 91视视频在线观看入口直接观看www | 国产精品综合一区二区三区| 亚洲色图欧洲色图婷婷| 欧美性感一类影片在线播放| 国产精品综合二区| 国产精品狼人久久影院观看方式| 欧美日韩一区二区三区在线看 | 7777精品伊人久久久大香线蕉超级流畅 | 成人avav在线| 三级亚洲高清视频| 久久欧美中文字幕| 色诱亚洲精品久久久久久| 石原莉奈一区二区三区在线观看| 国产精品女人毛片| 久久久久国产精品麻豆| 91久久久免费一区二区| 国产91精品一区二区麻豆网站| 久久机这里只有精品| 国产精品国产三级国产aⅴ中文 | 欧美伊人久久久久久午夜久久久久| 国产麻豆精品久久一二三| 免费观看一级欧美片| 亚洲成人一二三| 一区二区三区毛片| 中文字幕一区二区三区蜜月| 久久精品在线观看| 国产亚洲综合av| 久久久久久**毛片大全| www成人在线观看| 国产丝袜欧美中文另类| 久久一二三国产| 久久久久九九视频| 国产日产精品1区| 国产视频一区二区在线观看| 国产日产欧美一区| 中日韩av电影| 亚洲人精品午夜| 亚洲一区二区三区视频在线 | 国产日韩欧美不卡在线| 中文成人av在线| 最新中文字幕一区二区三区| 亚洲天堂av一区| 亚洲二区在线观看| 另类综合日韩欧美亚洲| 免费在线观看精品| 久久精品久久精品| av中文一区二区三区| 在线区一区二视频| 日韩欧美一二三四区| 国产精品久久久久9999吃药| 国产精品久久看| 图片区小说区国产精品视频| 激情综合色综合久久| av不卡免费在线观看| 欧美视频中文字幕| 国产视频一区二区在线| 伊人性伊人情综合网| 久久国产视频网| 色婷婷综合久久久久中文一区二区| 欧美影片第一页| 国产精品入口麻豆原神| 亚洲一区在线免费观看| 美女视频一区二区| 欧美视频中文一区二区三区在线观看| 欧美精品一区二区三区久久久| 亚洲图片欧美激情| 久久91精品国产91久久小草| 欧美亚洲国产怡红院影院| 久久看人人爽人人| 首页国产欧美久久| 91黄视频在线观看| 国产精品久久久久久福利一牛影视| 午夜精品一区二区三区三上悠亚| 国产精品综合av一区二区国产馆| 欧美伦理影视网| 樱花草国产18久久久久| 国产91在线观看| 1024成人网| 成人美女在线观看| 99精品热视频| 精品国产一区二区三区四区四| 午夜激情一区二区三区| 欧美日韩国产小视频在线观看| 亚洲一级片在线观看| 欧美日韩一区二区三区四区五区| 午夜久久久久久久久久一区二区| 91精品视频网| 国产原创一区二区三区| 国产精品乱码一区二区三区软件| 国产精品99久久久久久久vr| 欧美日韩高清一区二区| 久久夜色精品一区| 国产91在线看| 亚洲欧美综合色| 欧美自拍偷拍午夜视频| 日日欢夜夜爽一区| 日韩欧美成人午夜| 国产成人精品免费网站| 亚洲欧美日韩国产中文在线| zzijzzij亚洲日本少妇熟睡| 日韩精品资源二区在线| 国产原创一区二区三区| 国产精品久久久久久久午夜片| 在线精品视频小说1| 毛片一区二区三区| 中文字幕va一区二区三区| 日韩免费高清电影| 国内精品自线一区二区三区视频| 欧美激情综合网| 欧美男人的天堂一二区| 精品亚洲成av人在线观看| 国产精品乱人伦| 欧美午夜电影网| 国产精品一区二区在线观看不卡| 18涩涩午夜精品.www| 欧美大片日本大片免费观看| av在线播放一区二区三区| 日韩国产一区二| 亚洲视频在线一区二区| 日韩视频免费观看高清完整版| 99久久精品国产精品久久| 久久精品久久久精品美女| 亚洲国产视频直播| 中文字幕一区二区三区在线观看 | 国产欧美精品国产国产专区| 一本大道久久精品懂色aⅴ| 国产在线精品国自产拍免费|