📄 printserver.cpp
字号:
#include <stdio.h>
#include "CMcl.h"
#define MAX_NUM_REQUESTS 256
#define MAX_REQUEST_SIZE (MAX_PATH + 1)
#define PRINT_REQUEST_MAILBOX_NAME __TEXT("MclTestPrintServerMailbox")
class PrintServerHandler : public CMclThreadHandler {
private:
CMclEvent m_ceStop;
CMclMailbox m_cmRequests;
public:
// create the print server thread handler, initialize the
// mailbox as a member object and also the stop event for
// shutting the server down...
PrintServerHandler() : m_cmRequests( MAX_NUM_REQUESTS, MAX_REQUEST_SIZE, PRINT_REQUEST_MAILBOX_NAME),
m_ceStop() {
return;
};
void Stop(void) {
m_ceStop.Set();
};
void PrintFile( LPTSTR lpFilename) {
printf("Servicing Request to Print File:'%s'...", lpFilename);
Sleep(1000);
printf("done.\n");
};
unsigned ThreadHandlerProc(void) {
BYTE abRequest[MAX_REQUEST_SIZE];
while (m_cmRequests.GetAlertable( abRequest, &m_ceStop, INFINITE)) {
PrintFile((LPTSTR)abRequest);
}
return 0;
};
};
int main(int argc, char *argv[]) {
PrintServerHandler thPrintServer;
CMclThreadAutoPtr apPrinterServer;
// start the print server...
printf("Print server starting, press <ENTER> to stop.\n");
apPrinterServer = new CMclThread(&thPrintServer);
// wait for enter...
getchar();
// stop the server...
thPrintServer.Stop();
// wait for the printer server to stop...
apPrinterServer->Wait(INFINITE);
// all done...
printf("Print server stopped, exiting.\n");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -