//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1995. // // File: ccache.cxx // // Contents: Class Cache functionality for the NwCompat Provider // // //---------------------------------------------------------------------------- #include "nwcompat.hxx" HRESULT SetLPTSTRPropertyInCache( CPropertyCache *pPropertyCache, LPTSTR pszProperty, LPTSTR pszValue, BOOL fExplicit ) { HRESULT hr; if(!pPropertyCache){ RRETURN(E_POINTER); } hr = pPropertyCache->unmarshallproperty( pszProperty, (LPBYTE)pszValue, 1, NT_SYNTAX_ID_LPTSTR, fExplicit ); BAIL_ON_FAILURE(hr); error: RRETURN(hr); } HRESULT SetDWORDPropertyInCache( CPropertyCache *pPropertyCache, LPTSTR pszProperty, DWORD dwValue, BOOL fExplicit ) { HRESULT hr; if(!pPropertyCache){ RRETURN(E_POINTER); } hr = pPropertyCache->unmarshallproperty( pszProperty, (LPBYTE)&dwValue, 1, NT_SYNTAX_ID_DWORD, fExplicit ); BAIL_ON_FAILURE(hr); error: RRETURN(hr); } HRESULT SetDATEPropertyInCache( CPropertyCache *pPropertyCache, LPTSTR pszProperty, DWORD dwValue, BOOL fExplicit ) { HRESULT hr; if(!pPropertyCache){ RRETURN(E_POINTER); } hr = pPropertyCache->unmarshallproperty( pszProperty, (LPBYTE)&dwValue, 1, NT_SYNTAX_ID_DATE, fExplicit ); BAIL_ON_FAILURE(hr); error: RRETURN(hr); } HRESULT SetBOOLPropertyInCache( CPropertyCache *pPropertyCache, LPTSTR pszProperty, BOOL fValue, BOOL fExplicit ) { HRESULT hr; if(!pPropertyCache){ RRETURN(E_POINTER); } hr = pPropertyCache->unmarshallproperty( pszProperty, (LPBYTE)&fValue, 1, NT_SYNTAX_ID_BOOL, fExplicit ); BAIL_ON_FAILURE(hr); error: RRETURN(hr); } HRESULT SetOctetPropertyInCache( CPropertyCache *pPropertyCache, LPTSTR pszProperty, BYTE *pByte, DWORD dwLength, BOOL fExplicit ) { HRESULT hr; OctetString octString; if(!pPropertyCache){ RRETURN(E_POINTER); } octString.pByte = pByte; octString.dwSize = dwLength; hr = pPropertyCache->unmarshallproperty( pszProperty, (LPBYTE)&octString, 1, NT_SYNTAX_ID_OCTETSTRING, fExplicit ); BAIL_ON_FAILURE(hr); error: RRETURN(hr); } HRESULT SetSYSTEMTIMEPropertyInCache( CPropertyCache *pPropertyCache, LPTSTR pszProperty, SYSTEMTIME stValue, BOOL fExplicit ) { HRESULT hr; if(!pPropertyCache){ RRETURN(E_POINTER); } hr = pPropertyCache->unmarshallproperty( pszProperty, (LPBYTE)&stValue, 1, NT_SYNTAX_ID_SYSTEMTIME, fExplicit ); BAIL_ON_FAILURE(hr); error: RRETURN(hr); } HRESULT SetDelimitedStringPropertyInCache( CPropertyCache *pPropertyCache, LPTSTR pszProperty, LPTSTR pszValue, BOOL fExplicit ) { HRESULT hr; if(!pPropertyCache){ RRETURN(E_POINTER); } hr = pPropertyCache->unmarshallproperty( pszProperty, (LPBYTE)pszValue, 1, NT_SYNTAX_ID_DelimitedString, fExplicit ); BAIL_ON_FAILURE(hr); error: RRETURN(hr); } HRESULT SetNulledStringPropertyInCache( CPropertyCache *pPropertyCache, LPTSTR pszProperty, LPTSTR pszValue, BOOL fExplicit ) { HRESULT hr; if(!pPropertyCache){ RRETURN(E_POINTER); } hr = pPropertyCache->unmarshallproperty( pszProperty, (LPBYTE)pszValue, 1, NT_SYNTAX_ID_NulledString, fExplicit ); BAIL_ON_FAILURE(hr); error: RRETURN(hr); } HRESULT GetPropertyFromCache( CPropertyCache * pPropertyCache, LPTSTR pszProperty, LPBYTE pValue ) { HRESULT hr = S_OK; DWORD dwSyntaxId = 0; DWORD dwNumValues = 0; PNTOBJECT pNTObject = NULL; hr = pPropertyCache->marshallgetproperty( pszProperty, &dwSyntaxId, &dwNumValues, &pNTObject ); BAIL_ON_FAILURE(hr); hr = MarshallNTSynIdToNT( dwSyntaxId, pNTObject, dwNumValues, pValue ); BAIL_ON_FAILURE(hr); error: if (pNTObject) NTTypeFreeNTObjects(pNTObject, dwNumValues); RRETURN (hr); } HRESULT GetLPTSTRPropertyFromCache( CPropertyCache * pPropertyCache, LPTSTR pszProperty, LPTSTR * ppszValue ) { HRESULT hr; hr = GetPropertyFromCache(pPropertyCache, pszProperty, (LPBYTE)ppszValue); RRETURN(hr); } HRESULT GetDelimitedStringPropertyFromCache( CPropertyCache * pPropertyCache, LPTSTR pszProperty, LPTSTR * ppszValue ) { HRESULT hr; hr = GetPropertyFromCache(pPropertyCache, pszProperty, (LPBYTE)ppszValue); RRETURN (hr); } HRESULT GetNulledStringPropertyFromCache( CPropertyCache * pPropertyCache, LPTSTR pszProperty, LPTSTR * ppszValue ) { HRESULT hr; hr = GetPropertyFromCache(pPropertyCache, pszProperty, (LPBYTE)ppszValue); RRETURN(hr); } HRESULT GetBOOLPropertyFromCache( CPropertyCache * pPropertyCache, LPTSTR pszProperty, PBOOL pBool ) { HRESULT hr; hr = GetPropertyFromCache(pPropertyCache, pszProperty, (LPBYTE)pBool); RRETURN(hr); } HRESULT GetOctetPropertyFromCache( CPropertyCache * pPropertyCache, LPTSTR pszProperty, OctetString *pOctet) { HRESULT hr; hr = GetPropertyFromCache(pPropertyCache, pszProperty, (LPBYTE)pOctet); RRETURN(hr); } HRESULT GetDWORDPropertyFromCache( CPropertyCache * pPropertyCache, LPTSTR pszProperty, LPDWORD pdwDWORD ) { HRESULT hr; hr = GetPropertyFromCache(pPropertyCache, pszProperty, (LPBYTE)pdwDWORD); RRETURN(hr); } HRESULT GetDATEPropertyFromCache( CPropertyCache * pPropertyCache, LPTSTR pszProperty, PDWORD pdwDate ) { HRESULT hr; hr = GetPropertyFromCache(pPropertyCache, pszProperty, (LPBYTE)pdwDate); RRETURN(hr); } HRESULT GetNw312DATEPropertyFromCache( CPropertyCache * pPropertyCache, LPTSTR pszProperty, BYTE byDateTime[] ) { HRESULT hr = S_OK; DWORD dwSyntaxId = 0; DWORD dwNumValues = 0; PNTOBJECT pNTObject = NULL; hr = pPropertyCache->marshallgetproperty( pszProperty, &dwSyntaxId, &dwNumValues, &pNTObject ); BAIL_ON_FAILURE(hr); if(SUCCEEDED(hr)){ hr = MarshallNTSynIdToNT( dwSyntaxId, pNTObject, dwNumValues, (LPBYTE)byDateTime ); } error: if (pNTObject) NTTypeFreeNTObjects(pNTObject, dwNumValues); RRETURN (hr); } HRESULT SetNw312DATEPropertyInCache( CPropertyCache *pPropertyCache, LPTSTR pszProperty, BYTE byDateTime[], BOOL fExplicit ) { HRESULT hr; if(!pPropertyCache){ RRETURN(E_POINTER); } hr = pPropertyCache->unmarshallproperty( pszProperty, (LPBYTE)byDateTime, 1, NT_SYNTAX_ID_NW312DATE, fExplicit ); BAIL_ON_FAILURE(hr); error: RRETURN(hr); }