Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

monitor.c File Reference

#include "precomp.h"

Go to the source code of this file.

Defines

#define phszs   ((MONHSZSTRUCT *)&pep->Data)
#define pls   ((MONLINKSTRUCT *)&pep->Data)
#define pcs   ((MONCONVSTRUCT *)&pep->Data)

Functions

VOID MonitorStringHandle (PCL_INSTANCE_INFO pcii, HSZ hsz, DWORD fsAction)
VOID MonitorLink (PCL_INSTANCE_INFO pcii, BOOL fEstablished, BOOL fNoData, LATOM aService, LATOM aTopic, GATOM aItem, WORD wFmt, BOOL fServer, HCONV hConvServer, HCONV hConvClient)
VOID MonitorConv (PCONV_INFO pcoi, BOOL fConnect)


Define Documentation

#define pcs   ((MONCONVSTRUCT *)&pep->Data)
 

Referenced by GetCPConnSpace(), GetPS2PreviewColorRenderingDictionary(), InitNamedColorProfileData(), MonitorConv(), ReaderWndProc(), SendCRDABC(), and SendCRDLMN().

#define phszs   ((MONHSZSTRUCT *)&pep->Data)
 

Referenced by MonitorStringHandle().

#define pls   ((MONLINKSTRUCT *)&pep->Data)
 

Referenced by MonitorLink().


Function Documentation

VOID MonitorConv (  PCONV_INFO  pcoi,
BOOL  fConnect
) 
 

Definition at line 167 of file monitor.c.

References CheckDDECritIn, DDEMLAlloc, DWORD, EnterDDECrit, Event(), tagCONV_INFO::hwndConv, tagCONV_INFO::hwndPartner, tagCONV_INFO::laService, tagCONV_INFO::laTopic, LeaveDDECrit, LocalToGlobalAtom(), tagCL_INSTANCE_INFO::MonitorFlags, NtGetTickCount(), NULL, tagCONV_INFO::pcii, pcs, pep, SetLastDDEMLError(), tagCONV_INFO::state, tagCL_INSTANCE_INFO::tid, TRUE, and VOID().

00170 { 00171 PEVENT_PACKET pep; 00172 00173 CheckDDECritIn; 00174 00175 UserAssert(pcoi->pcii->MonitorFlags & MF_CONV); 00176 00177 pep = (PEVENT_PACKET)DDEMLAlloc(sizeof(EVENT_PACKET) - sizeof(DWORD) + 00178 sizeof(MONCONVSTRUCT)); 00179 if (pep == NULL) { 00180 SetLastDDEMLError(pcoi->pcii, DMLERR_MEMORY_ERROR); 00181 return ; 00182 } 00183 00184 pep->EventType = MF_CONV; 00185 pep->fSense = TRUE; 00186 pep->cbEventData = sizeof(MONCONVSTRUCT); 00187 00188 #define pcs ((MONCONVSTRUCT *)&pep->Data) 00189 pcs->cb = sizeof(MONCONVSTRUCT); 00190 pcs->fConnect = fConnect; 00191 pcs->dwTime = NtGetTickCount(); 00192 pcs->hTask = (HANDLE)LongToHandle( pcoi->pcii->tid ); 00193 pcs->hszSvc = (HSZ)LocalToGlobalAtom(pcoi->laService); 00194 pcs->hszTopic = (HSZ)LocalToGlobalAtom(pcoi->laTopic); 00195 if (pcoi->state & ST_CLIENT) { 00196 pcs->hConvClient = (HCONV)pcoi->hwndConv; 00197 pcs->hConvServer = (HCONV)pcoi->hwndPartner; 00198 } else { 00199 pcs->hConvClient = (HCONV)pcoi->hwndPartner; 00200 pcs->hConvServer = (HCONV)pcoi->hwndConv; 00201 } 00202 00203 LeaveDDECrit; 00204 Event(pep); 00205 EnterDDECrit; 00206 00207 GlobalDeleteAtom((ATOM)(ULONG_PTR)pcs->hszSvc); 00208 GlobalDeleteAtom((ATOM)(ULONG_PTR)pcs->hszTopic); 00209 #undef pcs 00210 }

VOID MonitorLink (  PCL_INSTANCE_INFO  pcii,
BOOL  fEstablished,
BOOL  fNoData,
LATOM  aService,
LATOM  aTopic,
GATOM  aItem,
WORD  wFmt,
BOOL  fServer,
HCONV  hConvServer,
HCONV  hConvClient
) 
 

Definition at line 90 of file monitor.c.

References CheckDDECritIn, DDEMLAlloc, DWORD, EnterDDECrit, Event(), IncGlobalAtomCount(), LeaveDDECrit, LocalToGlobalAtom(), tagCL_INSTANCE_INFO::MonitorFlags, NtGetTickCount(), NULL, pep, pls, SetLastDDEMLError(), tagCL_INSTANCE_INFO::tid, TRUE, and VOID().

00101 { 00102 PEVENT_PACKET pep; 00103 00104 CheckDDECritIn; 00105 00106 UserAssert(pcii->MonitorFlags & MF_LINKS); 00107 00108 pep = (PEVENT_PACKET)DDEMLAlloc(sizeof(EVENT_PACKET) - sizeof(DWORD) + 00109 sizeof(MONLINKSTRUCT)); 00110 if (pep == NULL) { 00111 SetLastDDEMLError(pcii, DMLERR_MEMORY_ERROR); 00112 return ; 00113 } 00114 00115 pep->EventType = MF_LINKS; 00116 pep->fSense = TRUE; 00117 pep->cbEventData = sizeof(MONLINKSTRUCT); 00118 00119 #define pls ((MONLINKSTRUCT *)&pep->Data) 00120 pls->cb = sizeof(MONLINKSTRUCT); 00121 pls->dwTime = NtGetTickCount(); 00122 pls->hTask = (HANDLE)LongToHandle( pcii->tid ); 00123 pls->fEstablished = fEstablished; 00124 pls->fNoData = fNoData; 00125 00126 // use global atoms here - these need to be changed to local atoms before 00127 // the callbacks to the ddespy apps. 00128 00129 pls->hszSvc = (HSZ)LocalToGlobalAtom(aService); 00130 pls->hszTopic = (HSZ)LocalToGlobalAtom(aTopic); 00131 IncGlobalAtomCount(aItem); 00132 pls->hszItem = (HSZ)aItem; 00133 00134 pls->wFmt = wFmt; 00135 pls->fServer = fServer; 00136 pls->hConvServer = hConvServer; 00137 pls->hConvClient = hConvClient; 00138 00139 LeaveDDECrit; 00140 Event(pep); 00141 EnterDDECrit; 00142 00143 GlobalDeleteAtom((ATOM)(ULONG_PTR)pls->hszSvc); 00144 GlobalDeleteAtom((ATOM)(ULONG_PTR)pls->hszTopic); 00145 GlobalDeleteAtom(aItem); 00146 #undef pls 00147 }

VOID MonitorStringHandle (  PCL_INSTANCE_INFO  pcii,
HSZ  hsz,
DWORD  fsAction
) 
 

Definition at line 31 of file monitor.c.

References CheckDDECritIn, DDEMLAlloc, DWORD, EnterDDECrit, Event(), LATOM_FROM_HSZ, LeaveDDECrit, tagCL_INSTANCE_INFO::MonitorFlags, NtGetTickCount(), NULL, pep, phszs, SetLastDDEMLError(), tagCL_INSTANCE_INFO::tid, TRUE, and VOID().

00035 { 00036 WCHAR szT[256]; 00037 PEVENT_PACKET pep; 00038 DWORD cchString; 00039 00040 CheckDDECritIn; 00041 00042 UserAssert(pcii->MonitorFlags & MF_HSZ_INFO); 00043 00044 if (!(cchString = GetAtomName(LATOM_FROM_HSZ(hsz), szT, 00045 sizeof(szT) / sizeof(WCHAR)))) { 00046 SetLastDDEMLError(pcii, DMLERR_INVALIDPARAMETER); 00047 return ; 00048 } 00049 cchString++; 00050 pep = (PEVENT_PACKET)DDEMLAlloc(sizeof(EVENT_PACKET) - sizeof(DWORD) + 00051 sizeof(MONHSZSTRUCT) + cchString * sizeof(WCHAR)); 00052 if (pep == NULL) { 00053 SetLastDDEMLError(pcii, DMLERR_MEMORY_ERROR); 00054 return ; 00055 } 00056 00057 pep->EventType = MF_HSZ_INFO; 00058 pep->fSense = TRUE; 00059 pep->cbEventData = (WORD)(sizeof(MONHSZSTRUCT) + cchString * sizeof(WCHAR)); 00060 00061 #define phszs ((MONHSZSTRUCT *)&pep->Data) 00062 phszs->cb = sizeof(MONHSZSTRUCT); 00063 phszs->fsAction = fsAction; 00064 phszs->dwTime = NtGetTickCount(); 00065 phszs->hsz = hsz; 00066 phszs->hTask = (HANDLE)LongToHandle( pcii->tid ); 00067 // phszs->wReserved = 0; // zero init. 00068 wcscpy(phszs->str, szT); 00069 00070 LeaveDDECrit; 00071 Event(pep); 00072 EnterDDECrit; 00073 #undef phszs 00074 }


Generated on Sat May 15 19:44:48 2004 for test by doxygen 1.3.7