141 lines
4.3 KiB
C++
141 lines
4.3 KiB
C++
#include <pop/mainwnd.hpp>
|
|
#include <pop/pop.hpp>
|
|
|
|
char MainWindow::szClassName[]="POP3 client v1.00";
|
|
char MainWindow::szMenuName[]="POP3";
|
|
|
|
MainWindow::MainWindow(HINSTANCE hInstance)
|
|
: mPaintHandler(this,&MainWindow::paintHandler),
|
|
mDestroyHandler(this,&MainWindow::destroyHandler),
|
|
mCommandHandler(this,&MainWindow::commandHandler),
|
|
mKeyDownHandler(this,&MainWindow::keyDownHandler),
|
|
mSizeHandler(this,&MainWindow::sizeHandler),
|
|
mCreateHandler(this,&MainWindow::createHandler),
|
|
mTimerHandler(this,&MainWindow::timerHandler),
|
|
mSetFocusHandler(this,&MainWindow::setFocusHandler),
|
|
mhInstance(hInstance)
|
|
{
|
|
insertHandlers();
|
|
registerClass();
|
|
::CreateWindow(szClassName,szClassName,
|
|
WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_SIZEBOX|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_DLGFRAME|WS_CLIPCHILDREN,
|
|
CW_USEDEFAULT,CW_USEDEFAULT,
|
|
CW_USEDEFAULT,CW_USEDEFAULT,
|
|
NULL,NULL,mhInstance,(LPSTR)this);
|
|
show(SW_SHOW);
|
|
update();
|
|
|
|
Block<String> msgLines;
|
|
WORD messages;
|
|
WORD octets;
|
|
|
|
POPClient popClient;
|
|
popClient.open("mailhost.li.net");
|
|
if(!popClient.authenticate("europa","cygnus-x1"))
|
|
{
|
|
popClient.quit();
|
|
popClient.close();
|
|
return;
|
|
}
|
|
popClient.stat(messages,octets);
|
|
popClient.top(msgLines,1);
|
|
// for(int msgIndex=1;msgIndex<=messages;msgIndex++)popClient.retrieve(msgIndex,msgLines);
|
|
popClient.quit();
|
|
popClient.close();
|
|
}
|
|
|
|
MainWindow::~MainWindow()
|
|
{
|
|
destroy();
|
|
}
|
|
|
|
void MainWindow::insertHandlers(void)
|
|
{
|
|
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
|
insertHandler(VectorHandler::PaintHandler,&mPaintHandler);
|
|
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
|
insertHandler(VectorHandler::SizeHandler,&mSizeHandler);
|
|
insertHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler);
|
|
insertHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
|
insertHandler(VectorHandler::TimerHandler,&mTimerHandler);
|
|
insertHandler(VectorHandler::SetFocusHandler,&mSetFocusHandler);
|
|
}
|
|
|
|
void MainWindow::removeHandlers(void)
|
|
{
|
|
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
|
removeHandler(VectorHandler::PaintHandler,&mPaintHandler);
|
|
removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
|
removeHandler(VectorHandler::SizeHandler,&mSizeHandler);
|
|
removeHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler);
|
|
removeHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
|
removeHandler(VectorHandler::TimerHandler,&mTimerHandler);
|
|
removeHandler(VectorHandler::SetFocusHandler,&mSetFocusHandler);
|
|
}
|
|
|
|
void MainWindow::registerClass(void)const
|
|
{
|
|
WNDCLASS wndClass;
|
|
|
|
if(::GetClassInfo(mhInstance,className(),(WNDCLASS FAR*)&wndClass))return;
|
|
wndClass.style =CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS|CS_OWNDC;
|
|
wndClass.lpfnWndProc =(WNDPROC)Window::WndProc;
|
|
wndClass.cbClsExtra =0;
|
|
wndClass.cbWndExtra =sizeof(MainWindow*);
|
|
wndClass.hInstance =mhInstance;
|
|
wndClass.hIcon =::LoadIcon(NULL,IDI_APPLICATION);
|
|
wndClass.hCursor =::LoadCursor(NULL,IDC_ARROW);
|
|
wndClass.hbrBackground =(HBRUSH)::GetStockObject(BLACK_BRUSH);
|
|
wndClass.lpszMenuName =szMenuName;
|
|
wndClass.lpszClassName =szClassName;
|
|
::RegisterClass(&wndClass);
|
|
assert(0!=::GetClassInfo(mhInstance,className(),(WNDCLASS FAR*)&wndClass));
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::destroyHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
removeHandlers();
|
|
::PostQuitMessage(0);
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::sizeHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::commandHandler(CallbackData &someCallbackData)
|
|
{
|
|
switch(someCallbackData.wParam())
|
|
{
|
|
default :
|
|
break;
|
|
}
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::keyDownHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::paintHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::createHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::timerHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::setFocusHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|