help me FPC_CreateWindowA and FPC_UnloadCode error in my dll

DLL Edition of the F-IN-BOX
skygz
Posts: 6
Joined: Sat Aug 26, 2006 4:07 pm
Contact:

help me FPC_CreateWindowA and FPC_UnloadCode error in my dll

Postby skygz » Tue Jun 03, 2008 1:51 pm

FPC_CreateWindowA Hwnd error
FPC_UnloadCode unload An error occurred


Code: Select all

#pragma once

#ifndef WINVER
#define WINVER 0x0501
#endif

#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif                  

#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0x0410
#endif

#ifndef _WIN32_IE
#define _WIN32_IE 0x0600
#endif

#define WIN32_LEAN_AND_MEAN

#define FLASHLIB_API extern "C" __declspec(dllexport)

#include <windows.h>

#define FPCS_TRANSPARENT      (0x00000001L)

typedef struct HFPC_
{
   void* p;
} *HFPC;


typedef HFPC (WINAPI *PFPC_LoadRegisteredOCX)();
typedef BOOL (WINAPI *PFPC_UnloadCode)(HFPC hFPC);
typedef HWND (WINAPI *PFPC_CreateWindowA)(HFPC hFPC, DWORD dwExStyle, LPCSTR lpWindowName, DWORD dwStyle,
                       int x, int y, int nWidth, int nHeight,
                       HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);

PFPC_LoadRegisteredOCX FPC_LoadRegisteredOCX;
PFPC_UnloadCode FPC_UnloadCode;
PFPC_CreateWindowA FPC_CreateWindowA;

static HINSTANCE HinstDll = NULL;
static HFPC g_hFPC = NULL;

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
   switch (ul_reason_for_call)
   {
   case DLL_PROCESS_ATTACH:
      {
         HinstDll = LoadLibraryA("FlashLibEx.dll");
         if (HinstDll != NULL)
         {
         FPC_LoadRegisteredOCX = (PFPC_LoadRegisteredOCX)GetProcAddress(HinstDll, "FPC_LoadRegisteredOCX");
         FPC_UnloadCode = (PFPC_UnloadCode)GetProcAddress(HinstDll, "FPC_UnloadCode");
         FPC_CreateWindowA = (PFPC_CreateWindowA)GetProcAddress(HinstDll, "FPC_CreateWindowA");

         g_hFPC = FPC_LoadRegisteredOCX();
         }
         break;
      }
   case DLL_THREAD_ATTACH:
   case DLL_THREAD_DETACH:
   case DLL_PROCESS_DETACH:
      {
         if (g_hFPC != NULL)
         {
            FPC_UnloadCode(g_hFPC); //unload An error occurred?????????
            g_hFPC = NULL;
         }
         if (HinstDll != NULL)
         {
            FreeLibrary(HinstDll);
         }
         break;
      }
   }
    return TRUE;
}

FLASHLIB_API HWND WINAPI FlashLibInit(int X, int Y, int nWidth, int nHeight, HWND hWndParent)
{
   if (g_hFPC == NULL) return 0;
/debuging An error occurred (hWndParent error)??????
   return = FPC_CreateWindowA(g_hFPC, 0, NULL, WS_CHILD | WS_VISIBLE | FPCS_TRANSPARENT,
      X ,Y ,nWidth, nHeight, hWndParent, NULL, NULL, NULL);
}

FLASHLIB_API void WINAPI FlashLibFree(HWND hWnd)
{
   if (hWnd <= 0) return;
   DestroyWindow(hWnd);
}

Softanics
Site Admin
Posts: 1402
Joined: Sat Sep 18, 2004 3:03 am
Location: Russia, St. Petersburg
Contact:

Re: help me FPC_CreateWindowA and FPC_UnloadCode error in my

Postby Softanics » Tue Jun 03, 2008 4:13 pm

skygz wrote:/debuging An error occurred (hWndParent error)??????
return = FPC_CreateWindowA(g_hFPC, 0, NULL, WS_CHILD | WS_VISIBLE | FPCS_TRANSPARENT,
X ,Y ,nWidth, nHeight, hWndParent, NULL, NULL, NULL);


GetLastError() could give more information. But as soon as I know, it's impossible to create child window (WS_CHILD) with specifying a parent window.

skygz wrote:FPC_UnloadCode(g_hFPC); //unload An error occurred?????????


What error occured here?

BTW, is it good idea to call unload on DLL_THREAD_ATTACH and DLL_THREAD_DETACH events?...
Best regards, Artem A. Razin,
F-IN-BOX support
Ask your question here: http://www.f-in-box.com/support.html


Return to “DLL Edition”

Who is online

Users browsing this forum: No registered users and 5 guests

cron