Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

202 lines
5.4 KiB

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: tests.cpp
//
// Contents: Implementations of the Upper Layer unit tests
//
// Classes:
//
// Functions: StartTest1
//
// History: dd-mmm-yy Author Comment
// 07-Feb-94 alexgo author
//
//--------------------------------------------------------------------------
#include "pre.h"
#include "iocs.h"
#include "ias.h"
#include "app.h"
#include "site.h"
#include "doc.h"
#include <testmess.h>
#ifdef WIN32
const CLSID CLSID_SimpleServer = {0xbcf6d4a0, 0xbe8c, 0x1068, { 0xb6, 0xd4,
0x00, 0xdd, 0x01, 0x0c, 0x05, 0x09 }};
#else
const CLSID CLSID_SimpleServer = {0x9fb878d0, 0x6f88, 0x101b, { 0xbc, 0x65,
0x00, 0x00, 0x0b, 0x65, 0xc7, 0xa6 }};
#endif
const CLSID CLSID_Paintbrush = {0x0003000a, 0, 0, { 0xc0, 0,0,0,0,0,0,0x46 }};
//+-------------------------------------------------------------------------
//
// Function: StartTest1
//
// Synopsis: Starts unit test1, inserting a simple server object into
// this (simpdnd) container.
//
// Effects:
//
// Arguments: pApp -- a pointer to the CSimpleApp that we're a part of
//
// Requires:
//
// Returns:
//
// Signals:
//
// Modifies:
//
// Algorithm:
//
// History: dd-mmm-yy Author Comment
// 07-Feb-94 alexgo author
//
// Notes:
//
//--------------------------------------------------------------------------
void StartTest1( CSimpleApp *pApp )
{
HRESULT hresult;
static FORMATETC formatetc;
//insert the simple server object
formatetc.dwAspect = DVASPECT_CONTENT;
formatetc.cfFormat = NULL;
formatetc.lindex = -1;
//need to create the client site
pApp->m_lpDoc->m_lpSite = CSimpleSite::Create(pApp->m_lpDoc);
hresult = OleCreate(CLSID_SimpleServer, IID_IOleObject,
OLERENDER_DRAW, &formatetc,
&pApp->m_lpDoc->m_lpSite->m_OleClientSite,
pApp->m_lpDoc->m_lpSite->m_lpObjStorage,
(void **)&(pApp->m_lpDoc->m_lpSite->m_lpOleObject));
if( hresult != NOERROR )
{
goto errRtn;
}
//initialize the object
hresult = pApp->m_lpDoc->m_lpSite->InitObject(TRUE);
if( hresult == NOERROR )
{
//tell it to paint itself, then we'll quit
PostMessage(pApp->m_lpDoc->m_hDocWnd, WM_PAINT, 0L, 0L);
PostMessage(pApp->m_hDriverWnd, WM_TESTEND, TEST_SUCCESS,
(LPARAM)hresult);
PostMessage(pApp->m_hAppWnd, WM_SYSCOMMAND, SC_CLOSE, 0L);
return;
}
errRtn:
PostMessage(pApp->m_hDriverWnd, WM_TESTEND, TEST_FAILURE,
(LPARAM)hresult);
PostMessage(pApp->m_hAppWnd, WM_SYSCOMMAND, SC_CLOSE, 0L);
return;
}
//+-------------------------------------------------------------------------
//
// Function: StartTest2
//
// Synopsis: Starts unit Test2, inserting a paintbrush object into
// this (simpdnd) container.
//
// Effects:
//
// Arguments: pApp -- a pointer to the CSimpleApp that we're a part of
//
// Requires:
//
// Returns:
//
// Signals:
//
// Modifies:
//
// Algorithm:
//
// History: dd-mmm-yy Author Comment
// 24-May-94 kevinro & alexgo author
//
// Notes:
//
//--------------------------------------------------------------------------
void StartTest2( CSimpleApp *pApp )
{
HRESULT hresult;
static FORMATETC formatetc;
//insert the simple server object
formatetc.dwAspect = DVASPECT_CONTENT;
formatetc.cfFormat = NULL;
formatetc.lindex = -1;
//need to create the client site
pApp->m_lpDoc->m_lpSite = CSimpleSite::Create(pApp->m_lpDoc);
hresult = OleCreate(CLSID_Paintbrush, IID_IOleObject,
OLERENDER_DRAW, &formatetc,
&pApp->m_lpDoc->m_lpSite->m_OleClientSite,
pApp->m_lpDoc->m_lpSite->m_lpObjStorage,
(void **)&(pApp->m_lpDoc->m_lpSite->m_lpOleObject));
if( hresult != NOERROR )
{
goto errRtn;
}
//initialize the object
hresult = pApp->m_lpDoc->m_lpSite->InitObject(TRUE);
//
// The DDE layer is going to ignore all of the parameters except
// the verb index. The parameters here are mostly dummies.
//
if (hresult == NOERROR)
{
hresult = pApp->m_lpDoc->m_lpSite->m_lpOleObject->DoVerb(0,
NULL,
&(pApp->m_lpDoc->m_lpSite->m_OleClientSite),
-1,
NULL,
NULL);
}
if( hresult == NOERROR )
{
//tell it to paint itself, then we'll quit
PostMessage(pApp->m_lpDoc->m_hDocWnd, WM_PAINT, 0L, 0L);
PostMessage(pApp->m_hDriverWnd, WM_TESTEND, TEST_SUCCESS,
(LPARAM)hresult);
PostMessage(pApp->m_hAppWnd, WM_SYSCOMMAND, SC_CLOSE, 0L);
return;
}
errRtn:
PostMessage(pApp->m_hDriverWnd, WM_TESTEND, TEST_FAILURE,
(LPARAM)hresult);
PostMessage(pApp->m_hAppWnd, WM_SYSCOMMAND, SC_CLOSE, 0L);
return;
}