4 DWORD TLS::m_TlsIndex = TLS_OUT_OF_INDEXES;
\r
8 return (m_TlsIndex = TlsAlloc()) != TLS_OUT_OF_INDEXES;
\r
14 if (m_TlsIndex != TLS_OUT_OF_INDEXES)
\r
15 TlsFree(m_TlsIndex);
\r
16 m_TlsIndex = TLS_OUT_OF_INDEXES;
\r
19 TLS *TLS::AllocLocal()
\r
21 if (m_TlsIndex == TLS_OUT_OF_INDEXES)
\r
23 LPVOID data = TlsGetValue(m_TlsIndex);
\r
25 data = LocalAlloc(LPTR, sizeof(TLS));
\r
27 TlsSetValue(m_TlsIndex, data);
\r
29 return reinterpret_cast<TLS *>(data);
\r
32 void TLS::FreeLocal()
\r
34 if (m_TlsIndex == TLS_OUT_OF_INDEXES)
\r
36 LPVOID data = TlsGetValue(m_TlsIndex);
\r
39 TSFHandler *tmp = reinterpret_cast<TLS *>(data)->m_TSFHandler;
\r
43 TlsSetValue(m_TlsIndex, nullptr);
\r
46 HHOOK TLS::GetKeyboardHook()
\r
48 TLS *tls = AllocLocal();
\r
49 return tls ? tls->m_KeyboardHook : nullptr;
\r
52 void TLS::PutKeyboardHook(HHOOK hook)
\r
54 TLS *tls = AllocLocal();
\r
56 tls->m_KeyboardHook = hook;
\r
59 TSFHandler *TLS::GetTSFHandler()
\r
61 TLS *tls = AllocLocal();
\r
62 return tls ? tls->m_TSFHandler : nullptr;
\r
65 void TLS::PutTSFHandler(TSFHandler *tsf)
\r
67 TLS *tls = AllocLocal();
\r
69 tls->m_TSFHandler = tsf;
\r