00001 #pragma once
00002 #ifndef AXPIPE_CCOCONTEXT_H
00003 #define AXPIPE_CCOCONTEXT_H
00004
00038 #include "AxPipe.h"
00039
00040 namespace AxPipe {
00060 class CCoContext {
00061 DWORD m_dwThreadId;
00062 LPVOID m_pFiber;
00063
00064 void (*m_pfStart)(void *);
00065 void *m_pvParam;
00066 CError *m_pErr;
00067
00068 public:
00070 CCoContext(CError *pErr = NULL, void (*pfStart)(void *) = NULL, void *pvParam = NULL);
00072 void Init(CError *pErr, void (*pfStart)(void *), void *pvParam);
00073
00074 ~CCoContext();
00075 static VOID CALLBACK Start(PVOID lpParam);
00076 bool Go();
00077 void Stop();
00078 };
00079
00080 };
00081 #endif AXPIPE_CTHREAD_H