mirror of https://github.com/lianthony/NT4.0
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.
58 lines
1.6 KiB
58 lines
1.6 KiB
//*********************************************************************
|
|
//* Microsoft Windows **
|
|
//* Copyright(c) Microsoft Corp., 1995 **
|
|
//*********************************************************************
|
|
|
|
//
|
|
// THREADPX.CPP - thread proxy dispatch code
|
|
//
|
|
|
|
// HISTORY:
|
|
//
|
|
// 11/16/95 jeremys Created.
|
|
//
|
|
|
|
//
|
|
// Currently, we run the HTML window on a separate thread from the
|
|
// OLE container thread so that our existing codebase is happy.
|
|
// (Hopefully at some point we will be able to remove the extra thread...
|
|
// scheduling lightweight threads is the sticky point.) When we
|
|
// get poked at some COM interfaces, we need to synchronize that poking
|
|
// with what's going on in the HTML window thread. To do that, we
|
|
// send a message to the main thread (WM_COM_METHOD) asking it to
|
|
// handle the request.
|
|
|
|
// This code is called by the main thread in response to the WM_COM_METHOD
|
|
// message, it cracks the message and dispatches the request appropriately.
|
|
|
|
#include "project.hpp"
|
|
#pragma hdrstop
|
|
|
|
#include "htmlview.hpp"
|
|
|
|
#include "threadpx.h"
|
|
|
|
LRESULT OnComMethod(DWORD dwMethod,LPVOID lpData)
|
|
{
|
|
switch (dwMethod) {
|
|
|
|
case (ORD_IPERSISTFILE_LOAD):
|
|
|
|
{
|
|
IPersistFile_Load_Data * pData = (IPersistFile_Load_Data *) lpData;
|
|
|
|
// call the object back in the context of HTML window thread
|
|
return pData->pIPersistFile->Load_Proxy(pData->pszFileName,
|
|
pData->dwMode);
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
ASSERT(FALSE); // got some method ordinal we don't understand;
|
|
// should never get here!
|
|
|
|
return ResultFromScode(E_FAIL); // return generic failure code
|
|
}
|
|
|