91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

支持透明窗體的FLASH 用了TL的FLASH sorry

資源截圖

代碼片段和文件信息

/******************************************************************
***
***
*** FREE?WINDOWLESS?FLASH?CONTROL
***
*** ???by?Makarov?Igor
***
*** for?questions?and?remarks?mailto:?mak_july@list.ru
***
***
*******************************************************************/
//?flash.cpp?:?Defines?the?entry?point?for?the?application.
//

/*
?*?該實現很完美,指出了實現像QQ寵物那樣效果的本質方法,但唯一不足
?*?就是在16位24位色下處理的不好。如果這樣處理肯定不能拿去商用。
?*?下面給出16位和24位色的解決方案。
?*?1、可以先將Flash每一幀的Alpha值預先保存起來,然后
?* 在此根據像素計算設置進去。因為在Draw的過程中,創建
?* 了32位設備無關的位圖,所以在FlashPlayer在該DC上繪制
?* 完畢后,可以將DC中的位圖數據得到,并將Alpha通過計算填寫
?* 進去。仔細觀察一下,即便是在16位色模式下,FlashPlayer
?* 并不是一個像素只適用兩個字節,而是使用了3個字節,所以
?* 將Alpha填寫到第四個字節就能解決問題。但這樣做太笨拙了,
?* 預先要截取每一幀的Alpha值,而且又要對每一個像素重新計算,
?* 效率太低。
?*???2、第二種方法一勞永逸啊,那就是欺騙FlashPlayer。通過
?* 鉤子技術用自己定義的函數告訴FlashPlayer目前的色位是32
?* 位,而不管實際的色位是多少。GetDevicesCap是獲得色位的
?* API,而且發現FlashPlayer.ocx的導入表中確實對該函數進行
?* 了調用,所以Hook它。------------陳建化?2009-5-2
?*/


#include?“stdafx.h“
#include?“resource.h“
#include?“FlashWnd.h“

#define?MAX_LOADSTRING?100

//?Global?Variables:
HINSTANCE?hInst; //?current?instance
TCHAR?sztitle[MAX_LOADSTRING]?=?_T(“test“); //?The?title?bar?text
TCHAR?szWindowClass[MAX_LOADSTRING]?=?_T(“WindowlessFlashContainerApp“);?//?The?title?bar?text

//?Foward?declarations?of?functions?included?in?this?code?module:
ATOM MyRegisterClass(HINSTANCE?hInstance);
BOOL InitInstance(HINSTANCE?int);
LRESULT?CALLBACK WndProc(HWND?UINT?WPARAM?LPARAM);
LRESULT?CALLBACK About(HWND?UINT?WPARAM?LPARAM);

HWND?g_hWnd?=?NULL;
HINSTANCE?g_hInst?=?NULL;
CFlashWnd?*g_flashWnd?=?NULL;

HINSTANCE?app_instance_;

typedef?int?(WINAPI?*GDC_FUNC)(HDC?hdc?int?nIndex);

GDC_FUNC?sys_org_func;
BYTE?jmp_cmd[5];
BYTE?sys_func_enter[5];

int?WINAPI?cjh_GetDeviceCaps(HDC?hdc?int?nIndex)
{
int?rst?=?0;

if?(BITSPIXEL?==?nIndex)
{
rst?=?32;
}
else
{
//寫回DoDragDrop的前5個字節的指令
memcpy((LPVOID)sys_org_func?sys_func_enter?5);?
//刷新指令cache中相關地址指令的內容
FlushInstructionCache(GetCurrentProcess()?(LPVOID)sys_org_func?5);

rst?=?GetDeviceCaps(hdc?nIndex);

//寫回長跳轉指令到DoDragDrop的前5個字節
memcpy((LPVOID)sys_org_func?jmp_cmd?5);?
//刷新指令cache中相關地址指令的內容
FlushInstructionCache(GetCurrentProcess()?(LPVOID)sys_org_func?5);
}

return?rst;
}

int?APIENTRY?WinMain(HINSTANCE?hInstance
?????????????????????HINSTANCE?hPrevInstance
?????????????????????LPSTR?????lpCmdLine
?????????????????????int???????nCmdShow)
{
? //?TODO:?Place?code?here.
MSG?msg;
HACCEL?hAccelTable;

app_instance_?=?hInstance;

//?Initialize?global?strings
MyRegisterClass(hInstance);

//?Perform?application?initialization:
if?(!InitInstance?(hInstance?nCmdShow))?
{
return?FALSE;
}

g_hInst?=?hInst;

hAccelTable?=?LoadAccelerators(hInstance?(LPCTSTR)IDC_FLASH);

OleInitialize(NULL);

int?bitspixel?=?GetDeviceCaps(0?BITSPIXEL);

///////////////////////////////////////////////

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2011-07-09?00:18??Flash_TLBB\
?????目錄???????????0??2011-07-09?00:19??Flash_TLBB\Debug\
?????文件??????139264??2011-07-09?00:08??Flash_TLBB\Debug\test.exe
?????文件??????577282??2010-08-27?12:41??Flash_TLBB\Debug\TEST.swf
?????文件????????8671??2011-07-09?00:08??Flash_TLBB\flash.cpp
?????文件?????????615??2009-05-02?22:23??Flash_TLBB\flash.h
?????文件???????28070??2010-12-28?19:36??Flash_TLBB\FlashWnd.cpp
?????文件???????12069??2011-07-09?00:06??Flash_TLBB\FlashWnd.h
?????文件?????????777??2006-07-03?15:19??Flash_TLBB\resource.h
?????文件?????????292??2009-05-02?22:23??Flash_TLBB\StdAfx.cpp
?????文件????????2227??2010-12-28?19:28??Flash_TLBB\StdAfx.h
?????文件??????314368??2011-07-09?00:11??Flash_TLBB\test.ncb
?????文件????????1782??2009-05-02?22:33??Flash_TLBB\test.rc
?????文件?????????897??2010-12-28?19:28??Flash_TLBB\test.sln
?????文件???????10240??2011-07-09?00:11??Flash_TLBB\test.suo
?????文件????????5672??2010-12-28?19:28??Flash_TLBB\test.vcproj

評論

共有 條評論