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);
}