コード例 #1
0
HRESULT TxGetPropertySupportSite (
	_PROPERTYSUPPORT_ENTRY* pEntries, LPCOLESTR pcKey, ITRiASPropertyCallback *pdefault, 
	IUnknown *punk, ITRiASPropertyCallback **ppISite)
{
// versuchen diesen Eintrag zu finden
_PROPERTYSUPPORT_ENTRY* pDefEntry = NULL;

	while (NULL != pEntries->dw) {
		if (pEntries->dwFlags & PROPERTYSUPPORT_DEFAULT)
			pDefEntry = pEntries;		// DefaultEntry merken
		else if (NULL != pEntries->szKey && !wcscmp (pcKey, pEntries->szKey)) {
			if (SUCCEEDED(pEntries -> GetSupportObject (ppISite, punk))) 		// gefunden und erzeugt
				return S_OK;
		}
		pEntries++;
	}

// nichts gefunden, Standard liefern
	if (NULL == pdefault && NULL == pDefEntry) 
		return E_POINTER;

// evtl. ist Default-CLSID gegeben
	if (NULL != pDefEntry && SUCCEEDED(pDefEntry -> GetDefaultSupportObject (pcKey, ppISite, punk))) 
		return S_OK;

// ansonsten gegebenes defaultobjekt verwenden
	_ASSERTE(NULL != pdefault);
	*ppISite = pdefault;
	LPUNKNOWN(*ppISite) -> AddRef();

	return S_FALSE;		// Standard geliefert
}
コード例 #2
0
ファイル: HsCommX_OCX.cpp プロジェクト: code4hunter/oldpts
_di_IUnknown __fastcall TComm::GetDunk()
{
  _di_IUnknown diUnk;
  if (m_DefaultIntf) {
    IUnknownPtr punk = m_DefaultIntf;
    diUnk = LPUNKNOWN(punk);
  }
  return diUnk;
}
コード例 #3
0
// QueryInterface ist jetzt notwendig, da ein weiteres Interface unterstützt wird
STDMETHODIMP CTextExt :: QueryInterface (REFIID riid, LPVOID *ppv) 
{
// hier nur nach zusätzlichen Interfaces fragen
	if (riid == IID_IMaintainTexts) {
		*ppv = m_pTextPro;
		LPUNKNOWN (*ppv) -> AddRef();
		return NOERROR;
	}

// den Rest macht die BasisKlasse
return CTriasExtension :: QueryInterface (riid, ppv);
}
コード例 #4
0
ファイル: EDBS.CPP プロジェクト: hkaiser/TRiAS
// da wir ein zusõtzliches Interface dazugenommen haben, mu_ ein modifiziertes
// QueryInterface gegeben sein
HRESULT CEDBSExtension::QueryInterface (REFIID riid, LPVOID *ppvObj)
{
	if (riid == IID_IImportGeoData)
		*ppvObj = (IImportGeoData *)m_pImport;	// ImportInterface liefern
	else if (riid == IID_IImportGeoDataSelectCS)
		*ppvObj = (IImportGeoDataSelectCS *)m_pImport;
	else
// alles andere überlassen wir der BasisKlassse
		return CTriasExtension::QueryInterface (riid, ppvObj);

// AddRef nicht vergessen
	LPUNKNOWN(*ppvObj) -> AddRef();

	return NOERROR;
}