Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

110 lines
2.9 KiB

/****************************************************************************
ddecb.cpp
template for DDE callback functions for DDE classes
****************************************************************************/
#include <windows.h>
#include "pdde.h"
HDDEDATA CALLBACK __export DdeServerCallBack(
WORD wType, // transaction type
WORD wFmt, // clipboard format
HCONV hConv, // handle to conversation
HSZ hsz1, // string handles
HSZ hsz2,
HDDEDATA hData, // handle to a global memory object
DWORD dwData1, // transaction-specific data
DWORD dwData2)
{
switch(wType)
{
case XTYP_ADVREQ:
// server called PostAdvise
// hsz1 is topic, hsz2 is item
// call CreateDataHandle and return new data
return (HDDEDATA) NULL;
case XTYP_ADVSTART:
// client requested advise loop
// hsz1 topic, hsz2 item
// return non zero to accept
return (HDDEDATA) (DWORD) TRUE;
case XTYP_ADVSTOP:
return (HDDEDATA) NULL;
case XTYP_CONNECT:
// client requested connection
// return non-zero to accept
return (HDDEDATA) (DWORD) TRUE;
case XTYP_CONNECT_CONFIRM:
return (HDDEDATA) NULL;
case XTYP_DISCONNECT:
return (HDDEDATA) NULL;
case XTYP_ERROR:
return (HDDEDATA) NULL;
case XTYP_EXECUTE:
return (HDDEDATA) NULL;
case XTYP_POKE:
// return DDE_FACK for OK, or DDE_FBUSY or DDE_FNOTPROCESSED
return (HDDEDATA) (DWORD) DDE_FACK;
case XTYP_REGISTER:
return (HDDEDATA) NULL;
case XTYP_REQUEST:
// hsz1 is topic, hsz2 is item
// call CreateDataHandle and return new data
return (HDDEDATA) NULL;
case XTYP_UNREGISTER:
return (HDDEDATA) NULL;
case XTYP_WILDCONNECT:
return (HDDEDATA) NULL;
default:
return (HDDEDATA) NULL;
}
}
HDDEDATA CALLBACK __export DdeClientCallBack(
WORD wType, // transaction type
WORD wFmt, // clipboard format
HCONV hConv, // handle to conversation
HSZ hsz1, // string handles
HSZ hsz2,
HDDEDATA hData, // handle to a global memory object
DWORD dwData1, // transaction-specific data
DWORD dwData2)
{
switch(wType)
{
case XTYP_ADVDATA:
return (HDDEDATA) (DWORD) DDE_FACK;
case XTYP_DISCONNECT:
return (HDDEDATA) NULL;
case XTYP_ERROR:
return (HDDEDATA) NULL;
case XTYP_UNREGISTER:
return (HDDEDATA) NULL;
case XTYP_XACT_COMPLETE:
return (HDDEDATA) NULL;
default:
return (HDDEDATA) NULL;
}
}