#include "wrapper.h"

HINSTANCE hinstRE32 = 0;
static const char szClassRE10A[] = RICHEDIT_CLASS10A;

class   CTxtEdit;

extern "C"
{

__declspec(dllimport) LRESULT CALLBACK RichEdit10ANSIWndProc(HWND, UINT, WPARAM, LPARAM);

BOOL WINAPI DllMain(HMODULE hmod, DWORD dwReason, LPVOID lpvReserved)
{
    if(dwReason == DLL_PROCESS_DETACH)
    {
        UnregisterClassA(szClassRE10A, hinstRE32);
    }
    else if(dwReason == DLL_PROCESS_ATTACH) // We have just loaded
    {
        WNDCLASSA wca;

        hinstRE32 = hmod;

        wca.style = CS_DBLCLKS | CS_GLOBALCLASS | CS_PARENTDC;
        wca.lpfnWndProc = RichEdit10ANSIWndProc;
        wca.cbClsExtra = 0;
        wca.cbWndExtra = sizeof(CTxtEdit FAR *);
        wca.hInstance = hinstRE32;
        wca.hIcon = 0;
        wca.hCursor = 0;
        wca.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
        wca.lpszMenuName = NULL;
        wca.lpszClassName = szClassRE10A;

        //
        //  Register the RICHEDIT 10 class.
        //

        if( !RegisterClassA(&wca) )
        {
            return FALSE;
        }
    }

    return TRUE;
}

} // extern "C"