Вот решил пока выложить исходник либы... может ктонить ее быстрее сделает?
Код:
.586p
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
;include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
;includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
;AppName db "PAX DLL",0
.code
DllEntry proc hInstance:HINSTANCE, reason:DWORD, reserved1:DWORD
.if reason==DLL_PROCESS_ATTACH
;
.elseif reason==DLL_PROCESS_DETACH
;
.elseif reason==DLL_THREAD_ATTACH
;
.else ; DLL_THREAD_DETACH
;
.endif
mov eax,TRUE
ret
DllEntry Endp
PAXARGB proc Alpfa:DWORD, RRed:DWORD, GGreen:DWORD, BBlue:DWORD
PUSH EBX
MOV EAX, Alpfa
SHL EAX,24
MOV EBX, RRed
SHL EBX,16
OR EAX, EBX
MOV EBX, GGreen
MOV AH, BL
OR EAX, BBlue
POP EBX
ret
PAXARGB endp
PAXARGBX proc Alpfa:DWORD, RRed:DWORD, GGreen:DWORD, BBlue:DWORD
MOV EAX, Alpfa
SHL EAX,24
MOV EBX, RRed
SHL EBX,16
OR EAX, EBX
MOV EBX, GGreen
MOV AH, BL
OR EAX, BBlue
ret
PAXARGBX endp
PAXXRGB proc RRed:DWORD, GGreen:DWORD, BBlue:DWORD
PUSH EBX
MOV EAX, RRed
SHL EAX,16
OR EAX, 0FF000000h
MOV EBX, GGreen
MOV AH, BL
OR EAX, BBlue
POP EBX
ret
PAXXRGB endp
PAXXRGBX proc RRed:DWORD, GGreen:DWORD, BBlue:DWORD
MOV EAX, RRed
SHL EAX,16
OR EAX, 0FF000000h
MOV EBX, GGreen
MOV AH, BL
OR EAX, BBlue
ret
PAXXRGBX endp
PAXARGB_Alpha proc pARGB:DWORD
MOV EAX, pARGB
SHR EAX,24
ret
PAXARGB_Alpha endp
PAXARGB_Red proc pARGB:DWORD
MOV EAX, pARGB
SHR EAX,16
AND EAX, 0FFh
ret
PAXARGB_Red endp
PAXARGB_Green proc pARGB:DWORD
MOV EAX, pARGB
SHR EAX,8
AND EAX, 0FFh
ret
PAXARGB_Green endp
PAXARGB_Blue proc pARGB:DWORD
MOV EAX, pARGB
AND EAX, 0FFh
ret
PAXARGB_Blue endp
End DllEntry
Написал на MASM32 :)
|