72 int PASCAL
WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance,
73 LPSTR lpszCmdLine,
int nCmdShow )
78 if ( !hPrevInstance ){
86 while ( GetMessage ( &msg,
NULL, 0, 0 ) )
88 TranslateMessage ( &msg );
89 DispatchMessage ( &msg );
91 DdeUninitialize (
idInst );
93 return ( msg.wParam );
102 wc.style = CS_HREDRAW | CS_VREDRAW;
106 wc.hInstance = hInstance;
107 wc.hIcon = LoadIcon ( hInstance,
"DDEServerIcon" );
108 wc.hCursor = LoadCursor (
NULL, IDC_ARROW );
109 wc.hbrBackground = GetStockObject ( WHITE_BRUSH );
110 wc.lpszMenuName =
"DDEServerMenu";
113 if ( !RegisterClass ( &wc ) )
125 xScreen = GetSystemMetrics ( SM_CXSCREEN );
126 yScreen = GetSystemMetrics ( SM_CYSCREEN );
129 "NrnBBS Server Window",
151 ShowWindow (
hWnd, nCmdShow );
153 ShowWindow (
hWnd, SW_HIDE );
155 UpdateWindow (
hWnd );
164 WPARAM wParam, LPARAM lParam )
168 DLGPROC dlgProcAbout;
177 hDC = GetDC ( hWnd );
179 GetTextMetrics ( hDC, &
tm );
183 ReleaseDC ( hWnd, hDC );
187 APPCLASS_STANDARD, 0L ) )
194 hszService = DdeCreateStringHandle ( idInst,
"NrnBBS", CP_WINANSI );
195 hszAdmin = DdeCreateStringHandle ( idInst,
"Admin", CP_WINANSI );
196 hszUser = DdeCreateStringHandle ( idInst,
"User", CP_WINANSI );
198 (PCONVCONTEXT)
NULL );
200 MessageBox(NULL,
"NrnBBS server already running",
"NrnBBS", MB_OK);
207 DdeNameService ( idInst,
hszService, (HSZ) NULL, DNS_REGISTER );
215 switch ( GET_WM_COMMAND_ID(wParam, lParam) )
218 DestroyWindow ( hWnd );
224 return ( DefWindowProc ( hWnd, message, wParam, lParam ) );
229 hDC = BeginPaint ( hWnd, &ps );
235 if ( cTotalLines == 8 )
245 EndPaint ( hWnd, &ps );
255 DdeFreeStringHandle ( idInst,
hszAdmin );
256 DdeFreeStringHandle ( idInst,
hszUser );
258 FreeProcInstance ( lpDdeProc );
260 PostQuitMessage ( 0 );
264 return ( DefWindowProc ( hWnd, message, wParam, lParam ) );
276 HSZ hsz2, HDDEDATA
hData, DWORD dwData1,
283 return ( (HDDEDATA)
TRUE );
286 return ( (HDDEDATA)
FALSE );
297 return ( (HDDEDATA)
NULL );
300 sizeof ( szDDEString ), 0L, hsz1, wFmt, 0 );
302 if ( hData != (HDDEDATA)
NULL ){
306 return ( (HDDEDATA)NULL );
313 DdeGetData ( hData, (LPBYTE)
szDDEData, 80L, 0L );
315 if ( szDDEData != NULL ){
316 DdeQueryString(
idInst, hsz2, szDDEString, 40, CP_WINANSI);
322 return ( (HDDEDATA) NULL );
324 DdePostAdvise(
idInst, hsz1, hsz2);
325 return ( (HDDEDATA) DDE_FACK );
327 return ( (HDDEDATA) NULL );
328 case XTYP_CONNECT_CONFIRM:
333 case XTYP_DISCONNECT:
339 hData = DdeCreateDataHandle (
idInst, (LPBYTE) szDDEString,
341 sizeof ( szDDEString ), 0L, hsz2, wFmt, 0 );
342 if ( hData != (HDDEDATA)NULL ){
346 return ( (HDDEDATA)NULL );
356 return ( (HDDEDATA)
NULL );
365 cCurrentLine = ( cCurrentLine + 1 ) % 9;
370 UpdateWindow (
hWnd );
BOOL FAR PASCAL InitApplication(HANDLE hInstance)
void nrnbbs_server_admin_post(const char *name, const char *value)
void nrnbbs_show_postings()
#define IDM_SHOW_CONNECTIONS
void nrnbbs_server_admin_request(const char *name, char *value)
void HandleOutput(char *szOutputString)
HDDEDATA EXPENTRY _export DDECallback(WORD wType, WORD wFmt, HCONV hConv, HSZ hsz1, HSZ hsz2, HDDEDATA hData, DWORD dwData1, DWORD dwData2)
char szScreenText[10][80]
BOOL InitInstance(HANDLE hInstance, int nCmdShow)
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
void nrnbbs_server_take(const char *name, char *value)
void nrnbbs_server_post(const char *name, const char *value)
LRESULT CALLBACK _export MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)