modified porting-tools/mstscax/mstscax.cpp

Guard against NULL pointers in certain methods
   Append a newline to debug messages
   Support a couple forgotten VARIANT types
   Corrected implementations of IUnknown::QueryInterface
   Better debug output for IDispatch::GetIDsOfNames and IDispatch::Invoke
   Debug output for IQuickActivate

modified   porting-tools/rdesktop-core-tester/activex.cpp
   Way too many changes to list. Basically, I wrote an ActiveX control without any help from third party libraries such as ATL. It was educative, but not terribly fun. Very nearly there
   All properties of the control are now supported, aligned to the behavior of the original control, version 5.2. Parameter validation and range enforcement eveeywhere

modified   porting-tools/rdesktop-core-tester/mstsclib.idl
   Reindented
   Removed explicit __stdcall convention
   Added alternate interface ids/class ids for compatibility with the msrdp.ocx redistributable. Code does not support this yet

modified   porting-tools/rdesktop-core-tester/mstsclib.rc
added      porting-tools/rdesktop-core-tester/mstsclib_redist.idl
added      porting-tools/rdesktop-core-tester/mstsclib_redist.rc
modified   porting-tools/rdesktop-core-tester/rdesktop-core-tester.vcproj
added      porting-tools/rdesktop-core-tester/typelib.rh
   Support two type libraries for compatibility with the msrdp.ocx redistributable. Code does not support this yet

modified   porting-tools/rdesktop-core-tester/mstsclib_h.h
modified   porting-tools/rdesktop-core-tester/mstsclib_i.c
added      porting-tools/rdesktop-core-tester/mstsclib_redist_h.h
added      porting-tools/rdesktop-core-tester/mstsclib_redist_i.c
   Auto-generated files, for the poor souls without MIDL

modified   porting-tools/rdesktop-core-tester/stdafx.h
   Added missing OLE header
   Corrected typo

svn path=/trunk/; revision=23564
This commit is contained in:
Michele Cicciotti
2006-08-12 20:40:12 +00:00
parent eb1be244ca
commit 2c5ded9a8c
13 changed files with 11406 additions and 1433 deletions
@@ -31,7 +31,7 @@ namespace
std::basic_string<TCHAR>::const_iterator endPath = std::find(begin, end, TEXT('\\')).base();
std::basic_string<TCHAR> strPath(strFileName.begin(), endPath);
strPath.append(TEXT("mstscax_.dll"));
strPath.append(TEXT("original\\mstscax.dll"));
hmMstscax = LoadLibrary(strPath.c_str());
pfnDllGetClassObject = (PFNDLLGETCLASSOBJECT)GetProcAddress(hmMstscax, "DllGetClassObject");
@@ -48,6 +48,8 @@ namespace
StringCbVPrintf(buf, sizeof(buf), fmt, args);
va_end(args);
StringCbCat(buf, sizeof(buf), TEXT("\n"));
OutputDebugString(buf);
}
@@ -131,6 +133,9 @@ namespace
std::basic_string<TCHAR> RectToString(const RECT& rc)
{
if(&rc == NULL)
return TEXT("<null>");
std::basic_ostringstream<TCHAR> o;
o << "{" << " left:" << rc.left << " top:" << rc.top << " right:" << rc.right << " bottom:" << rc.bottom << " }";
return o.str();
@@ -138,6 +143,9 @@ namespace
std::basic_string<TCHAR> RectToString(const RECTL& rc)
{
if(&rc == NULL)
return TEXT("<null>");
std::basic_ostringstream<TCHAR> o;
o << "{" << " left:" << rc.left << " top:" << rc.top << " right:" << rc.right << " bottom:" << rc.bottom << " }";
return o.str();
@@ -145,6 +153,9 @@ namespace
std::basic_string<TCHAR> SizeToString(const SIZE& sz)
{
if(&sz == NULL)
return TEXT("<null>");
std::basic_ostringstream<TCHAR> o;
o << "{ " << " cx:" << sz.cx << " cy:" << sz.cy << " }";
return o.str();
@@ -254,6 +265,11 @@ namespace
case VT_HRESULT:
o << std::hex << var.ulVal; break;
case VT_EMPTY:
case VT_NULL:
case VT_VOID:
break;
default:
assert(0);
}
@@ -842,7 +858,7 @@ namespace
else \
{ \
hr = E_NOINTERFACE; \
pvObject = (IUnknown *)(this); \
pvObject = NULL; \
}
QIBEGIN()
@@ -3043,7 +3059,7 @@ namespace
virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR * rgszNames, UINT cNames, LCID lcid, DISPID * rgDispId)
{
IDispatch * pIDispatch = getIDispatch();
std::wstring strtemp;
std::wstring strtemp;
std::wostringstream strtempo;
@@ -3078,7 +3094,7 @@ namespace
strtempo << L" ]";
dbgprintf(TEXT("IDispatch::GetIDsOfNames -> %08X, rgDispId = [%ls]"), hr, strtemp.c_str());
dbgprintf(TEXT("IDispatch::GetIDsOfNames -> %08X, rgDispId = %ls"), hr, strtempo.str().c_str());
return hr;
}
@@ -3089,26 +3105,26 @@ namespace
std::basic_ostringstream<TCHAR> strtempo;
strtempo << L"{\n";
strtempo << L"{";
for(unsigned int i = pDispParams->cArgs, j = pDispParams->cNamedArgs; j < pDispParams->cArgs; -- i, ++ j)
{
strtempo << L"\t";
strtempo << L" ";
strtempo << VariantToString(pDispParams->rgvarg[i - 1]);
strtempo << L"\n";
strtempo << L",";
}
for(unsigned int i = pDispParams->cArgs - pDispParams->cNamedArgs; i > 0; -- i)
{
strtempo << L"\t";
strtempo << L" ";
strtempo << L"["; strtempo << pDispParams->rgdispidNamedArgs[i - 1]; strtempo << L"] => ";
strtempo << VariantToString(pDispParams->rgvarg[i - 1]);
strtempo << L"\n";
strtempo << L",";
}
strtempo << L"}";
strtempo << L" }";
dbgprintf(TEXT("IDispatch::Invoke(%ld, %ls, %08X, %04X, %s, %p, %p, %p)"), dispIdMember, UUIDToString(riid), lcid, wFlags, strtempo.str().c_str(), pVarResult, pExcepInfo, puArgErr);
dbgprintf(TEXT("IDispatch::Invoke(%ld, %ls, %08X, %04X, %s, %p, %p, %p)"), dispIdMember, UUIDToString(riid).c_str(), lcid, wFlags, strtempo.str().c_str(), pVarResult, pExcepInfo, puArgErr);
VARIANT VarResult = { };
EXCEPINFO ExcepInfo = { };
@@ -3160,6 +3176,9 @@ namespace
private:
static std::basic_string<TCHAR> TargetDeviceToString(const DVTARGETDEVICE& targetdev)
{
if(&targetdev == NULL)
return TEXT("<null>");
std::basic_ostringstream<TCHAR> o;
o << "{";
@@ -3999,9 +4018,53 @@ namespace
virtual HRESULT STDMETHODCALLTYPE IQuickActivate::QuickActivate(QACONTAINER * pQaContainer, QACONTROL * pQaControl) // TODO
{
IQuickActivate * pIQuickActivate = getIQuickActivate();
dbgprintf(TEXT("IQuickActivate::QuickActivate(%p, %p)"), pQaContainer, pQaControl);
std::basic_stringstream<TCHAR> o1;
o1 << "{ ";
o1 << "pClientSite = " << (void *)pQaContainer->pClientSite << ", ";
o1 << "pAdviseSink = " << (void *)pQaContainer->pAdviseSink << ", ";
o1 << "pPropertyNotifySink = " << (void *)pQaContainer->pPropertyNotifySink << ", ";
o1 << "pUnkEventSink = " << (void *)pQaContainer->pUnkEventSink << ", ";
o1 << std::hex;
o1 << "dwAmbientFlags = " << pQaContainer->dwAmbientFlags << ", ";
o1 << "colorFore = " << pQaContainer->colorFore << ", ";
o1 << "colorBack = " << pQaContainer->colorBack << ", ";
o1 << std::dec;
o1 << "pFont = " << (void *)pQaContainer->pFont << ", ";
o1 << "pUndoMgr = " << (void *)pQaContainer->pUndoMgr << ", ";
o1 << std::hex;
o1 << "dwAppearance = " << pQaContainer->dwAppearance << ", ";
o1 << "lcid = " << pQaContainer->lcid << ", ";
o1 << std::dec;
o1 << "hpal = " << (void *)pQaContainer->hpal << ", ";
o1 << "pBindHost = " << (void *)pQaContainer->pBindHost << ", ";
o1 << "pOleControlSite = " << (void *)pQaContainer->pOleControlSite << ", ";
o1 << "pServiceProvider = " << (void *)pQaContainer->pServiceProvider << ", ";
o1 << "}";
dbgprintf(TEXT("IQuickActivate::QuickActivate(%s, %p)"), o1.str().c_str(), pQaControl);
HRESULT hr = pIQuickActivate->QuickActivate(pQaContainer, pQaControl);
dbgprintf(TEXT("IQuickActivate::QuickActivate -> %08X, pQaControl = %p"), hr, pQaControl);
std::basic_stringstream<TCHAR> o2;
o2 << "{ ";
o2 << std::hex;
o2 << "dwMiscStatus = " << pQaControl->dwMiscStatus << ", ";
o2 << "dwViewStatus = " << pQaControl->dwViewStatus << ", ";
o2 << "dwEventCookie = " << pQaControl->dwEventCookie << ", ";
o2 << "dwPropNotifyCookie = " << pQaControl->dwPropNotifyCookie << ", ";
o2 << "dwPointerActivationPolicy = " << pQaControl->dwPointerActivationPolicy << ", ";
o2 << std::dec;
o2 << "}";
dbgprintf(TEXT("IQuickActivate::QuickActivate -> %08X, QaControl = %s"), hr, o2.str().c_str());
return hr;
}
@@ -4764,7 +4827,7 @@ namespace
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject)
{
HRESULT hr;
IUnknown * pvObject;
IUnknown * pvObject = NULL;
dbgprintf(TEXT("IUnknown::QueryInterface(%ls, %p)"), UUIDToString(riid).c_str(), ppvObject);
@@ -4796,7 +4859,7 @@ namespace
else \
{ \
hr = E_NOINTERFACE; \
pvObject = (IUnknown *)(this); \
pvObject = NULL; \
}
QIBEGIN()
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,9 +1,3 @@
#define TOSTRING_(X) # X
#define TOSTRING(X) TOSTRING_(X)
LANGUAGE 0, 0
// NOTE: TYPELIB_PATH__ is defined on the command line (-D TYPELIB_PATH__=<path>)
1 TYPELIB TOSTRING(TYPELIB_PATH__)
#define TYPELIB_RESOURCEID__ 1
#include "./typelib.rh"
// EOF
@@ -4,10 +4,10 @@
/* File created by MIDL compiler version 7.00.0493 */
/* at Mon Jul 31 17:27:49 2006
/* at Sat Aug 12 22:21:54 2006
*/
/* Compiler settings for .\mstsclib.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
Oicf, W2, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
@@ -2518,34 +2518,34 @@ EXTERN_C const IID IID_IMsTscNonScriptable;
IMsTscNonScriptable : public IUnknown
{
public:
virtual /* [propput] */ HRESULT __stdcall put_ClearTextPassword(
virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ClearTextPassword(
/* [in] */ BSTR rhs) = 0;
virtual /* [propput] */ HRESULT __stdcall put_PortablePassword(
virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortablePassword(
/* [in] */ BSTR pPortablePass) = 0;
virtual /* [propget] */ HRESULT __stdcall get_PortablePassword(
virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortablePassword(
/* [retval][out] */ BSTR *pPortablePass) = 0;
virtual /* [propput] */ HRESULT __stdcall put_PortableSalt(
virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortableSalt(
/* [in] */ BSTR pPortableSalt) = 0;
virtual /* [propget] */ HRESULT __stdcall get_PortableSalt(
virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortableSalt(
/* [retval][out] */ BSTR *pPortableSalt) = 0;
virtual /* [propput] */ HRESULT __stdcall put_BinaryPassword(
virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinaryPassword(
/* [in] */ BSTR pBinaryPassword) = 0;
virtual /* [propget] */ HRESULT __stdcall get_BinaryPassword(
virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinaryPassword(
/* [retval][out] */ BSTR *pBinaryPassword) = 0;
virtual /* [propput] */ HRESULT __stdcall put_BinarySalt(
virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinarySalt(
/* [in] */ BSTR pSalt) = 0;
virtual /* [propget] */ HRESULT __stdcall get_BinarySalt(
virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinarySalt(
/* [retval][out] */ BSTR *pSalt) = 0;
virtual HRESULT __stdcall ResetPassword( void) = 0;
virtual HRESULT STDMETHODCALLTYPE ResetPassword( void) = 0;
};
@@ -2567,43 +2567,43 @@ EXTERN_C const IID IID_IMsTscNonScriptable;
ULONG ( STDMETHODCALLTYPE *Release )(
IMsTscNonScriptable * This);
/* [propput] */ HRESULT ( __stdcall *put_ClearTextPassword )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )(
IMsTscNonScriptable * This,
/* [in] */ BSTR rhs);
/* [propput] */ HRESULT ( __stdcall *put_PortablePassword )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )(
IMsTscNonScriptable * This,
/* [in] */ BSTR pPortablePass);
/* [propget] */ HRESULT ( __stdcall *get_PortablePassword )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )(
IMsTscNonScriptable * This,
/* [retval][out] */ BSTR *pPortablePass);
/* [propput] */ HRESULT ( __stdcall *put_PortableSalt )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )(
IMsTscNonScriptable * This,
/* [in] */ BSTR pPortableSalt);
/* [propget] */ HRESULT ( __stdcall *get_PortableSalt )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )(
IMsTscNonScriptable * This,
/* [retval][out] */ BSTR *pPortableSalt);
/* [propput] */ HRESULT ( __stdcall *put_BinaryPassword )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )(
IMsTscNonScriptable * This,
/* [in] */ BSTR pBinaryPassword);
/* [propget] */ HRESULT ( __stdcall *get_BinaryPassword )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )(
IMsTscNonScriptable * This,
/* [retval][out] */ BSTR *pBinaryPassword);
/* [propput] */ HRESULT ( __stdcall *put_BinarySalt )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )(
IMsTscNonScriptable * This,
/* [in] */ BSTR pSalt);
/* [propget] */ HRESULT ( __stdcall *get_BinarySalt )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )(
IMsTscNonScriptable * This,
/* [retval][out] */ BSTR *pSalt);
HRESULT ( __stdcall *ResetPassword )(
HRESULT ( STDMETHODCALLTYPE *ResetPassword )(
IMsTscNonScriptable * This);
END_INTERFACE
@@ -2685,11 +2685,11 @@ EXTERN_C const IID IID_IMsRdpClientNonScriptable;
IMsRdpClientNonScriptable : public IMsTscNonScriptable
{
public:
virtual HRESULT __stdcall NotifyRedirectDeviceChange(
virtual HRESULT STDMETHODCALLTYPE NotifyRedirectDeviceChange(
/* [in] */ UINT_PTR wParam,
/* [in] */ LONG_PTR lParam) = 0;
virtual HRESULT __stdcall SendKeys(
virtual HRESULT STDMETHODCALLTYPE SendKeys(
/* [in] */ long numKeys,
/* [in] */ VARIANT_BOOL *pbArrayKeyUp,
/* [in] */ long *plKeyData) = 0;
@@ -2714,51 +2714,51 @@ EXTERN_C const IID IID_IMsRdpClientNonScriptable;
ULONG ( STDMETHODCALLTYPE *Release )(
IMsRdpClientNonScriptable * This);
/* [propput] */ HRESULT ( __stdcall *put_ClearTextPassword )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )(
IMsRdpClientNonScriptable * This,
/* [in] */ BSTR rhs);
/* [propput] */ HRESULT ( __stdcall *put_PortablePassword )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )(
IMsRdpClientNonScriptable * This,
/* [in] */ BSTR pPortablePass);
/* [propget] */ HRESULT ( __stdcall *get_PortablePassword )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )(
IMsRdpClientNonScriptable * This,
/* [retval][out] */ BSTR *pPortablePass);
/* [propput] */ HRESULT ( __stdcall *put_PortableSalt )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )(
IMsRdpClientNonScriptable * This,
/* [in] */ BSTR pPortableSalt);
/* [propget] */ HRESULT ( __stdcall *get_PortableSalt )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )(
IMsRdpClientNonScriptable * This,
/* [retval][out] */ BSTR *pPortableSalt);
/* [propput] */ HRESULT ( __stdcall *put_BinaryPassword )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )(
IMsRdpClientNonScriptable * This,
/* [in] */ BSTR pBinaryPassword);
/* [propget] */ HRESULT ( __stdcall *get_BinaryPassword )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )(
IMsRdpClientNonScriptable * This,
/* [retval][out] */ BSTR *pBinaryPassword);
/* [propput] */ HRESULT ( __stdcall *put_BinarySalt )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )(
IMsRdpClientNonScriptable * This,
/* [in] */ BSTR pSalt);
/* [propget] */ HRESULT ( __stdcall *get_BinarySalt )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )(
IMsRdpClientNonScriptable * This,
/* [retval][out] */ BSTR *pSalt);
HRESULT ( __stdcall *ResetPassword )(
HRESULT ( STDMETHODCALLTYPE *ResetPassword )(
IMsRdpClientNonScriptable * This);
HRESULT ( __stdcall *NotifyRedirectDeviceChange )(
HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )(
IMsRdpClientNonScriptable * This,
/* [in] */ UINT_PTR wParam,
/* [in] */ LONG_PTR lParam);
HRESULT ( __stdcall *SendKeys )(
HRESULT ( STDMETHODCALLTYPE *SendKeys )(
IMsRdpClientNonScriptable * This,
/* [in] */ long numKeys,
/* [in] */ VARIANT_BOOL *pbArrayKeyUp,
@@ -2850,10 +2850,10 @@ EXTERN_C const IID IID_IMsRdpClientNonScriptable2;
IMsRdpClientNonScriptable2 : public IMsRdpClientNonScriptable
{
public:
virtual /* [propput] */ HRESULT __stdcall put_UIParentWindowHandle(
virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_UIParentWindowHandle(
/* [in] */ HWND phwndUIParentWindowHandle) = 0;
virtual /* [propget] */ HRESULT __stdcall get_UIParentWindowHandle(
virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UIParentWindowHandle(
/* [retval][out] */ HWND *phwndUIParentWindowHandle) = 0;
};
@@ -2876,61 +2876,61 @@ EXTERN_C const IID IID_IMsRdpClientNonScriptable2;
ULONG ( STDMETHODCALLTYPE *Release )(
IMsRdpClientNonScriptable2 * This);
/* [propput] */ HRESULT ( __stdcall *put_ClearTextPassword )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )(
IMsRdpClientNonScriptable2 * This,
/* [in] */ BSTR rhs);
/* [propput] */ HRESULT ( __stdcall *put_PortablePassword )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )(
IMsRdpClientNonScriptable2 * This,
/* [in] */ BSTR pPortablePass);
/* [propget] */ HRESULT ( __stdcall *get_PortablePassword )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )(
IMsRdpClientNonScriptable2 * This,
/* [retval][out] */ BSTR *pPortablePass);
/* [propput] */ HRESULT ( __stdcall *put_PortableSalt )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )(
IMsRdpClientNonScriptable2 * This,
/* [in] */ BSTR pPortableSalt);
/* [propget] */ HRESULT ( __stdcall *get_PortableSalt )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )(
IMsRdpClientNonScriptable2 * This,
/* [retval][out] */ BSTR *pPortableSalt);
/* [propput] */ HRESULT ( __stdcall *put_BinaryPassword )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )(
IMsRdpClientNonScriptable2 * This,
/* [in] */ BSTR pBinaryPassword);
/* [propget] */ HRESULT ( __stdcall *get_BinaryPassword )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )(
IMsRdpClientNonScriptable2 * This,
/* [retval][out] */ BSTR *pBinaryPassword);
/* [propput] */ HRESULT ( __stdcall *put_BinarySalt )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )(
IMsRdpClientNonScriptable2 * This,
/* [in] */ BSTR pSalt);
/* [propget] */ HRESULT ( __stdcall *get_BinarySalt )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )(
IMsRdpClientNonScriptable2 * This,
/* [retval][out] */ BSTR *pSalt);
HRESULT ( __stdcall *ResetPassword )(
HRESULT ( STDMETHODCALLTYPE *ResetPassword )(
IMsRdpClientNonScriptable2 * This);
HRESULT ( __stdcall *NotifyRedirectDeviceChange )(
HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )(
IMsRdpClientNonScriptable2 * This,
/* [in] */ UINT_PTR wParam,
/* [in] */ LONG_PTR lParam);
HRESULT ( __stdcall *SendKeys )(
HRESULT ( STDMETHODCALLTYPE *SendKeys )(
IMsRdpClientNonScriptable2 * This,
/* [in] */ long numKeys,
/* [in] */ VARIANT_BOOL *pbArrayKeyUp,
/* [in] */ long *plKeyData);
/* [propput] */ HRESULT ( __stdcall *put_UIParentWindowHandle )(
/* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_UIParentWindowHandle )(
IMsRdpClientNonScriptable2 * This,
/* [in] */ HWND phwndUIParentWindowHandle);
/* [propget] */ HRESULT ( __stdcall *get_UIParentWindowHandle )(
/* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UIParentWindowHandle )(
IMsRdpClientNonScriptable2 * This,
/* [retval][out] */ HWND *phwndUIParentWindowHandle);
@@ -6,10 +6,10 @@
/* File created by MIDL compiler version 7.00.0493 */
/* at Mon Jul 31 17:27:49 2006
/* at Sat Aug 12 22:21:54 2006
*/
/* Compiler settings for .\mstsclib.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
Oicf, W2, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
@@ -0,0 +1,3 @@
#define MSTSCLIB_REDIST_
#include "./mstsclib.idl"
// EOF
@@ -0,0 +1,3 @@
#define TYPELIB_RESOURCEID__ 2
#include "./typelib.rh"
// EOF
@@ -0,0 +1,145 @@
/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
/* link this file in with the server and any clients */
/* File created by MIDL compiler version 7.00.0493 */
/* at Sat Aug 12 22:21:53 2006
*/
/* Compiler settings for .\mstsclib_redist.idl:
Oicf, W2, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING( )
#pragma warning( disable: 4049 ) /* more than 64k source lines */
#ifdef __cplusplus
extern "C"{
#endif
#include <rpc.h>
#include <rpcndr.h>
#ifdef _MIDL_USE_GUIDDEF_
#ifndef INITGUID
#define INITGUID
#include <guiddef.h>
#undef INITGUID
#else
#include <guiddef.h>
#endif
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
#else // !_MIDL_USE_GUIDDEF_
#ifndef __IID_DEFINED__
#define __IID_DEFINED__
typedef struct _IID
{
unsigned long x;
unsigned short s1;
unsigned short s2;
unsigned char c[8];
} IID;
#endif // __IID_DEFINED__
#ifndef CLSID_DEFINED
#define CLSID_DEFINED
typedef IID CLSID;
#endif // CLSID_DEFINED
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
#endif !_MIDL_USE_GUIDDEF_
MIDL_DEFINE_GUID(IID, LIBID_MSTSCLib,0xAF586AAE,0xB62A,0x420E,0xB7,0x96,0x29,0x4E,0x7E,0xE6,0x4C,0x70);
MIDL_DEFINE_GUID(IID, DIID_IMsTscAxEvents,0x336D5562,0xEFA8,0x482E,0x8C,0xB3,0xC5,0xC0,0xFC,0x7A,0x7D,0xB6);
MIDL_DEFINE_GUID(IID, IID_IMsTscAx,0x327BB5CD,0x834E,0x4400,0xAE,0xF2,0xB3,0x0E,0x15,0xE5,0xD6,0x82);
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient,0x92B4A539,0x7115,0x4B7C,0xA5,0xA9,0xE5,0xD9,0xEF,0xC2,0x78,0x0A);
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient2,0xE7E17DC4,0x3B71,0x4BA7,0xA8,0xE6,0x28,0x1F,0xFA,0xDC,0xA2,0x8F);
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient3,0x91B7CBC5,0xA72E,0x4FA0,0x93,0x00,0xD6,0x47,0xD7,0xE8,0x97,0xFF);
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient4,0x095E0738,0xD97D,0x488B,0xB9,0xF6,0xDD,0x0E,0x8D,0x66,0xC0,0xDE);
MIDL_DEFINE_GUID(IID, IID_IMsTscNonScriptable,0xC1E6743A,0x41C1,0x4A74,0x83,0x2A,0x0D,0xD0,0x6C,0x1C,0x7A,0x0E);
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable,0x2F079C4C,0x87B2,0x4AFD,0x97,0xAB,0x20,0xCD,0xB4,0x30,0x38,0xAE);
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable2,0x17A5E535,0x4072,0x4FA4,0xAF,0x32,0xC8,0xD0,0xD4,0x73,0x45,0xE9);
MIDL_DEFINE_GUID(IID, IID_IMsTscAdvancedSettings,0x809945CC,0x4B3B,0x4A92,0xA6,0xB0,0xDB,0xF9,0xB5,0xF2,0xEF,0x2D);
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings,0x3C65B4AB,0x12B3,0x465B,0xAC,0xD4,0xB8,0xDA,0xD3,0xBF,0xF9,0xE2);
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings2,0x9AC42117,0x2B76,0x4320,0xAA,0x44,0x0E,0x61,0x6A,0xB8,0x43,0x7B);
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings3,0x19CD856B,0xC542,0x4C53,0xAC,0xEE,0xF1,0x27,0xE3,0xBE,0x1A,0x59);
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings4,0xFBA7F64E,0x7345,0x4405,0xAE,0x50,0xFA,0x4A,0x76,0x3D,0xC0,0xDE);
MIDL_DEFINE_GUID(IID, IID_IMsTscSecuredSettings,0xC9D65442,0xA0F9,0x45B2,0x8F,0x73,0xD6,0x1D,0x2D,0xB8,0xCB,0xB6);
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientSecuredSettings,0x605BEFCF,0x39C1,0x45CC,0xA8,0x11,0x06,0x8F,0xB7,0xBE,0x34,0x6D);
MIDL_DEFINE_GUID(IID, IID_IMsTscDebug,0x209D0EB9,0x6254,0x47B1,0x90,0x33,0xA9,0x8D,0xAE,0x55,0xBB,0x27);
MIDL_DEFINE_GUID(CLSID, CLSID_MsTscAx,0x1FB464C8,0x09BB,0x4017,0xA2,0xF5,0xEB,0x74,0x2F,0x04,0x39,0x2F);
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient,0x791FA017,0x2DE3,0x492E,0xAC,0xC5,0x53,0xC6,0x7A,0x2B,0x94,0xD0);
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient2,0x9059F30F,0x4EB1,0x4BD2,0x9F,0xDC,0x36,0xF4,0x3A,0x21,0x8F,0x4A);
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient3,0x7584C670,0x2274,0x4EFB,0xB0,0x0B,0xD6,0xAA,0xBA,0x6D,0x38,0x50);
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient4,0x6AE29350,0x321B,0x42BE,0xBB,0xE5,0x12,0xFB,0x52,0x70,0xC0,0xDE);
#undef MIDL_DEFINE_GUID
#ifdef __cplusplus
}
#endif
@@ -62,7 +62,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib ws2_32.lib libeay32.lib advapi32.lib msimg32.lib $(NoInherit)"
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib ws2_32.lib libeay32.lib advapi32.lib msimg32.lib ole32.lib oleaut32.lib $(NoInherit)"
LinkIncremental="2"
AdditionalLibraryDirectories="&quot;C:\Documents and Settings\All Users\Documenti\openssl-0.9.8b\out32&quot;"
GenerateDebugInformation="true"
@@ -139,7 +139,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib ws2_32.lib libeay32.lib advapi32.lib msimg32.lib $(NoInherit)"
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib ws2_32.lib libeay32.lib advapi32.lib msimg32.lib ole32.lib oleaut32.lib $(NoInherit)"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;C:\Documents and Settings\All Users\Documenti\openssl-0.9.8b\out32&quot;"
GenerateDebugInformation="true"
@@ -242,7 +242,7 @@
>
<Tool
Name="VCMIDLTool"
TypeLibraryName="$(IntDir)/mstsclib.tlb"
TypeLibraryName="$(IntDir)/$(InputName).tlb"
/>
</FileConfiguration>
<FileConfiguration
@@ -250,7 +250,7 @@
>
<Tool
Name="VCMIDLTool"
TypeLibraryName="$(IntDir)/mstsclib.tlb"
TypeLibraryName="$(IntDir)/$(InputName).tlb"
/>
</FileConfiguration>
</File>
@@ -262,7 +262,7 @@
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="TYPELIB_PATH__=./$(IntDir)/mstsclib.tlb"
PreprocessorDefinitions="TYPELIB_PATH__=$(IntDir)/$(InputName).tlb"
/>
</FileConfiguration>
<FileConfiguration
@@ -270,7 +270,7 @@
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="TYPELIB_PATH__=./$(IntDir)/mstsclib.tlb"
PreprocessorDefinitions="TYPELIB_PATH__=$(IntDir)/$(InputName).tlb"
/>
</FileConfiguration>
</File>
@@ -286,9 +286,89 @@
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="_MIDL_USE_GUIDDEF_"
UsePrecompiledHeader="0"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="_MIDL_USE_GUIDDEF_"
UsePrecompiledHeader="0"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\mstsclib_redist.idl"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCMIDLTool"
TypeLibraryName="$(IntDir)/$(InputName).tlb"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCMIDLTool"
TypeLibraryName="$(IntDir)/$(InputName).tlb"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\mstsclib_redist.rc"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="TYPELIB_PATH__=$(IntDir)/$(InputName).tlb"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="TYPELIB_PATH__=$(IntDir)/$(InputName).tlb"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\mstsclib_redist_h.h"
>
</File>
<File
RelativePath=".\mstsclib_redist_i.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="_MIDL_USE_GUIDDEF_"
UsePrecompiledHeader="0"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="_MIDL_USE_GUIDDEF_"
UsePrecompiledHeader="0"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\typelib.rh"
>
</File>
</Filter>
</Files>
@@ -1,9 +1,10 @@
#pragma once
#define _CRT_SECURE_NO_DEPRECATE
#define _SCL_SECURE 0
#define _SECURE_SCL 0
#include <new>
#include <algorithm>
#include <assert.h>
#include <stdio.h>
@@ -22,6 +23,7 @@
#include <objbase.h>
#include <oleauto.h>
#include <olectl.h>
#include <ocidl.h>
#include <objsafe.h>
@@ -0,0 +1,21 @@
#define TOSTRING_(X) #X
#define TOSTRING(X) TOSTRING_(X)
LANGUAGE 0, 0
#ifndef TYPELIB_PATH__
#error TYPELIB_PATH__ not defined
#endif
#ifndef TYPELIB_RESOURCEID__
#error TYPELIB_RESOURCEID__ not defined
#endif
/*
NOTE:
TYPELIB_PATH__ is defined on the command line (-D TYPELIB_PATH__=<path>)
TYPELIB_RESOURCEID__ is defined before this file is included
*/
TYPELIB_RESOURCEID__ TYPELIB TOSTRING(TYPELIB_PATH__)
// EOF