Anti-cheat black screen
-
- Posts: 1
- Joined: 24 Nov 2019, 10:54
Re: Anti-cheat black screen
Is there a way to to use this code so I can use the pixel search function?
Re: Anti-cheat black screen
Yes. Read about Gdip_GetLockBitPixel.
Re: Anti-cheat black screen
if i addmalcev wrote: ↑21 Nov 2019, 18:27I think that it should be like this:Code: Select all
SetWorkingDir %A_ScriptDir%ss #Include gdip_all_v1.79.ahk gdipToken := Gdip_Startup() file := "file.png" ; can be: png, bmp, jpg, tiff, gif ;captureHwnd := 0x917ea captureHwnd := WinExist("ahk_exe Diablo III64.exe") setbatchlines -1 formatGuid := WIC_GUID(GUID, "GUID_WICPixelFormat32bppBGRA") Extension := RegexReplace(file, "^.+\.") if (Extension = "png") ContainerFormat := "GUID_ContainerFormatPng" else if (Extension = "bmp") ContainerFormat := "GUID_ContainerFormatBmp" else if (Extension = "jpg") ContainerFormat := "GUID_ContainerFormatJpeg" else if (Extension = "tiff") ContainerFormat := "GUID_ContainerFormatTiff" else if (Extension = "gif") ContainerFormat := "GUID_ContainerFormatGif" else { msgbox extension %Extension% cannot use ExitApp } LOAD_DLL_D3D11_DXGI_DWMAPI() GrantedCapacity := VarSetCapacity(D3D_FEATURE_LEVEL, 8, 0) NumPut(D3D_FEATURE_LEVEL_11_0 := 0xb000, D3D_FEATURE_LEVEL, 0, "uint") NumPut(D3D_FEATURE_LEVEL_10_1 := 0xa100, D3D_FEATURE_LEVEL, 4, "uint") D3D11CreateDevice(0, D3D_DRIVER_TYPE_HARDWARE := 1, 0, D3D11_CREATE_DEVICE_BGRA_SUPPORT := 0x20, &D3D_FEATURE_LEVEL, GrantedCapacity//4, D3D11_SDK_VERSION := 7, d3d_device, 0, d3d_context) QueryInterface(d3d_device, IID_IDXGIDevice := "{54ec77fa-1377-44e6-8c32-88fd5f44c84c}", dxgiDevice) IDXGIDevice_GetParent(dxgiDevice, IID_IDXGIAdapter := "{2411e7e1-12ac-4ccf-bd14-9798e8534dc0}", adapter) VarSetCapacity(DXGI_ADAPTER_DESC, 280+3*A_PtrSize, 0) IDXGIAdapter_GetDesc(adapter, &DXGI_ADAPTER_DESC) luidAdapter := NumGet(DXGI_ADAPTER_DESC, 272+3*A_PtrSize, "int64") ObjRelease(dxgiDevice) Release(adapter) dxgiDevice := adapter := "" DwmpDxGetWindowSharedSurface(captureHwnd, luidAdapter, 0, DWM_REDIRECTION_FLAG_SUPPORT_PRESENT_TO_GDI_SURFACE := 0x10, pfmtWindow, phDxSurface, puiUpdateId) DwmpDxUpdateWindowSharedSurface(captureHwnd, puiUpdateId, 0, 0, 0) ID3D11Device_OpenSharedResource(d3d_device, phDxSurface, ID3D11Resource := "{dc8e63f3-d12b-4952-b47b-5e45026a862d}", resource) QueryInterface(resource, IID_ID3D11Texture2D := "{6f15aaf2-d208-4e89-9ab4-489535d34f9c}", d3d11Tex) VarSetCapacity(D3D11_TEXTURE2D_DESC, 44, 0) ID3D11Texture2D_GetDesc(d3d11Tex, &D3D11_TEXTURE2D_DESC) ;Width := NumGet(D3D11_TEXTURE2D_DESC, 0, "int") ;Height := NumGet(D3D11_TEXTURE2D_DESC, 4, "int") ;Slot3 := [756, 995, 820, 1059] Width := 64 Height:= 64 top := 995 left := 756 right := 820 bottom := 1059 NumPut(1, D3D11_TEXTURE2D_DESC, 8, "uint") ; MipLevels NumPut(1, D3D11_TEXTURE2D_DESC, 12, "uint") ; ArraySize NumPut(DXGI_FORMAT_B8G8R8A8_UNORM := 87, D3D11_TEXTURE2D_DESC, 16, "uint") ; Format NumPut(1, D3D11_TEXTURE2D_DESC, 20, "uint") ; SampleDescCount NumPut(0, D3D11_TEXTURE2D_DESC, 24, "uint") ; SampleDescQuality NumPut(D3D11_USAGE_STAGING := 3, D3D11_TEXTURE2D_DESC, 28, "uint") ; Usage NumPut(0, D3D11_TEXTURE2D_DESC, 32, "uint") ; BindFlags NumPut(D3D11_CPU_ACCESS_READ := 0x20000, D3D11_TEXTURE2D_DESC, 36, "uint") ; CPUAccessFlags NumPut(0, D3D11_TEXTURE2D_DESC, 40, "uint") ; MiscFlags ID3D11Device_CreateTexture2D(d3d_device, &D3D11_TEXTURE2D_DESC, 0, staging_tex) Release(d3d_device) Release(resource) d3d_device := resource := "" VarSetCapacity(D3D11_BOX, 24, 0) NumPut(left, D3D11_BOX, 0, "uint") ; left NumPut(top, D3D11_BOX, 4, "uint") ; top NumPut(0, D3D11_BOX, 8, "uint") ; front NumPut(right, D3D11_BOX, 12, "uint") ; right NumPut(bottom, D3D11_BOX, 16, "uint") ; bottom NumPut(1, D3D11_BOX, 20, "uint") ; back wic := IWICCreate() !F5:: ID3D11DeviceContext_CopySubresourceRegion(d3d_context, staging_tex, 0, 0, 0, 0, d3d11Tex, 0, &D3D11_BOX) ; set region ; ID3D11DeviceContext_CopyResource(d3d_context, staging_tex, d3d11Tex) VarSetCapacity(D3D11_MAPPED_SUBRESOURCE, 8+A_PtrSize, 0) ID3D11DeviceContext_Map(d3d_context, staging_tex, 0, D3D11_MAP_READ := 1, 0, &D3D11_MAPPED_SUBRESOURCE) pBits := NumGet(D3D11_MAPPED_SUBRESOURCE, 0, "ptr") pitch := NumGet(D3D11_MAPPED_SUBRESOURCE, A_PtrSize, "uint") ; IWICImagingFactory_CreateStream(wic, stream) ; IWICStream_InitializeFromFilename(stream, file, GENERIC_WRITE := 0x40000000) stream := DllCall("Shlwapi.dll\SHCreateMemStream", "Ptr", 0, "UInt", 0, "Ptr") IWICImagingFactory_CreateEncoder(wic, ContainerFormat, 0, encoder) IWICBitmapEncoder_Initialize(encoder, stream, WICBitmapEncoderNoCache := 0x2) IWICBitmapEncoder_CreateNewFrame(encoder, frame) IWICBitmapFrameEncode_Initialize(frame) IWICBitmapFrameEncode_SetSize(frame, width, height) IWICImagingFactory_CreateFormatConverter(wic, FormatConverter) IWICImagingFactory_CreateBitmapFromMemory(wic, width, height, formatGuid, pitch, pitch * height, pBits, Bitmap) IWICFormatConverter_Initialize(FormatConverter, Bitmap, "GUID_WICPixelFormat24bppBGR", WICBitmapDitherTypeNone := 0, 0, 0, WICBitmapPaletteTypeMedianCut := 0x1) IWICBitmapFrameEncode_SetPixelFormat(frame, formatGuid) VarSetCapacity(Rect, 16, 0) NumPut(width, Rect, 8, "int") NumPut(height, Rect, 12, "int") IWICBitmapFrameEncode_WriteSource(frame, FormatConverter, &Rect) Release(FormatConverter) Release(Bitmap) FormatConverter := Bitmap := "" IWICBitmapFrameEncode_Commit(frame) IWICBitmapEncoder_Commit(encoder) vRet := DllCall("gdiplus\GdipCreateBitmapFromStream", ptr, stream, ptrP, pBitmap) ; find picture DllCall("gdiplus\GdipDisposeImage", "ptr", pBitmap) ObjRelease(stream) Release(frame) Release(encoder) stream := frame := encoder := pBitmap := "" ID3D11DeviceContext_Unmap(d3d_context, staging_tex, 0) return ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DwmpDxGetWindowSharedSurface(hwnd, luidAdapter, hmonitorAssociation, dwFlags, ByRef pfmtWindow, ByRef phDxSurface, ByRef puiUpdateId) { hr := DllCall("dwmapi.dll\DwmpDxGetWindowSharedSurface", "ptr", hwnd, "int64", luidAdapter, "ptr", hmonitorAssociation, "uint", dwFlags, "uint*", pfmtWindow, "ptr*", phDxSurface, "int64*", puiUpdateId) if (hr != 0x00263005) or ErrorLevel ; DWM_S_GDI_REDIRECTION_SURFACE _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } DwmpDxUpdateWindowSharedSurface(hwnd, uiUpdateId, dwFlags, hmonitorAssociation, prc) { hr := DllCall("dwmapi.dll\DwmpDxUpdateWindowSharedSurface", "ptr", hwnd, "int64", uiUpdateId, "int", dwFlags, "ptr", hmonitorAssociation, "ptr", prc) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } D3D11CreateDevice(pAdapter, DriverType, Software, Flags, pFeatureLevels, FeatureLevels, SDKVersion, ByRef ppDevice, ByRef pFeatureLevel, ByRef ppImmediateContext) { hr := DllCall("D3D11\D3D11CreateDevice", "ptr", pAdapter, "int", DriverType, "ptr", Software, "uint", Flags, "ptr", pFeatureLevels, "uint", FeatureLevels, "uint", SDKVersion, "ptr*", ppDevice, "ptr*", pFeatureLevel, "ptr*", ppImmediateContext) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11Texture2D_GetDesc(this, pDesc) { DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr", pDesc) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11Device_CreateTexture2D(this, pDesc, pInitialData, ByRef ppTexture2D) { hr := DllCall(NumGet(NumGet(this+0)+5*A_PtrSize), "ptr", this, "ptr", pDesc, "ptr", pInitialData, "ptr*", ppTexture2D) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11DeviceContext_CopyResource(this, pDstResource, pSrcResource) { hr := DllCall(NumGet(NumGet(this+0)+47*A_PtrSize), "ptr", this, "ptr", pDstResource, "ptr", pSrcResource) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11DeviceContext_CopySubresourceRegion(this, pDstResource, DstSubresource, DstX, DstY, DstZ, pSrcResource, SrcSubresource, pSrcBox) { hr := DllCall(NumGet(NumGet(this+0)+46*A_PtrSize), "ptr", this, "ptr", pDstResource, "uint", DstSubresource, "uint", DstX, "uint", DstY, "uint", DstZ, "ptr", pSrcResource, "uint", SrcSubresource, "ptr", pSrcBox) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11Device_OpenSharedResource(this, phDxSurface, MIDL_INTERFACE, ByRef ppResource) { GUID(riid, MIDL_INTERFACE) hr := DllCall(NumGet(NumGet(this+0)+28*A_PtrSize), "ptr", this, "ptr", phDxSurface, "ptr", &riid, "ptr*", ppResource) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11DeviceContext_Map(this, pResource, Subresource, MapType, MapFlags, pMappedResource) { hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize), "ptr", this, "ptr", pResource, "uint", Subresource, "uint", MapType, "uint", MapFlags, "ptr", pMappedResource) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11DeviceContext_Unmap(this, pResource, Subresource) { hr := DllCall(NumGet(NumGet(this+0)+15*A_PtrSize), "ptr", this, "ptr", pResource, "uint", Subresource) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } IDXGIAdapter_GetDesc(this, pDesc) { hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", pDesc) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } IDXGIDevice_GetParent(this, MIDL_INTERFACE, ByRef ppParent) { GUID(riid, MIDL_INTERFACE) hr := DllCall(NumGet(NumGet(this+0)+6*A_PtrSize), "ptr", this, "ptr", &riid, "ptr*", ppParent) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } QueryInterface(ComObject, SID, ByRef InterfacePointer) { InterfacePointer := ComObjQuery(ComObject, SID) if !InterfacePointer or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } Release(this) { DllCall(NumGet(NumGet(this+0)+2*A_PtrSize), "ptr", this) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } GUID(ByRef GUID, sGUID) { VarSetCapacity(GUID, 16, 0) return DllCall("ole32\CLSIDFromString", "WStr", sGUID, "Ptr", &GUID) >= 0 ? &GUID : "" } LOAD_DLL_D3D11_DXGI_DWMAPI() { if !DllCall("GetModuleHandle","str","DXGI") DllCall("LoadLibrary","str","DXGI") if !DllCall("GetModuleHandle","str","D3D11") DllCall("LoadLibrary","str","D3D11") if !DllCall("GetModuleHandle","str","dwmapi") DllCall("LoadLibrary","str","dwmapi.dll") } _Error(val) { msgbox % val ExitApp } IWICCreate() { return ComObjCreate("{cacaf262-9370-4615-a13b-9f5539da4c0a}", "{ec5ec8a9-c395-4314-9c77-54d7a935ff70}") } IWICImagingFactory_CreateStream(this, ByRef ppIWICStream) { hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize), "ptr", this, "ptr*", ppIWICStream) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICImagingFactory_CreateFormatConverter(this, ByRef ppIFormatConverter) { hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFormatConverter) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICStream_InitializeFromFilename(this, wzFileName, dwDesiredAccess) { hr := DllCall(NumGet(NumGet(this+0)+15*A_PtrSize), "ptr", this, "str", wzFileName, "uint", dwDesiredAccess) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICImagingFactory_CreateEncoder(this, guidContainerFormat, pguidVendor, ByRef ppIEncoder) { hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", WIC_GUID(GUID1, guidContainerFormat), "ptr", WIC_GUID(GUID2, pguidVendor), "ptr*", ppIEncoder) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapEncoder_Initialize(this, pIStream, cacheOption) { hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIStream, "int", cacheOption) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapEncoder_CreateNewFrame(this, ByRef ppIFrameEncode, ppIEncoderOptions := 0) { hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFrameEncode, "ptr*", ppIEncoderOptions) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapEncoder_Commit(this) { hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_Initialize(this, pIEncoderOptions := 0) { hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIEncoderOptions) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_SetSize(this, uiWidth, uiHeight) { hr := DllCall(NumGet(NumGet(this+0)+4*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_WritePixels(this, lineCount, cbStride, cbBufferSize, pbPixels) { hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "uint", lineCount, "uint", cbStride, "uint", cbBufferSize, "ptr", pbPixels) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_Commit(this) { hr := DllCall(NumGet(NumGet(this+0)+12*A_PtrSize), "ptr", this) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_WriteSource(this, pIBitmapSource, prc) { hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this, "ptr", pIBitmapSource, "ptr", prc) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICImagingFactory_CreateBitmapFromMemory(this, uiWidth, uiHeight, pixelFormat, cbStride, cbBufferSize, pbBuffer, ByRef ppIBitmap) { hr := DllCall(NumGet(NumGet(this+0)+20*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight, "ptr", pixelFormat, "uint", cbStride, "uint", cbBufferSize, "ptr", pbBuffer, "ptr*", ppIBitmap) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICFormatConverter_Initialize(this, pISource, dstFormat, dither, pIPalette, alphaThresholdPercent, paletteTranslate) { dstFormat := WIC_GUID(GUID, dstFormat) hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", pISource, "ptr", dstFormat, "uint", dither, "ptr", pIPalette, "double", alphaThresholdPercent, "uint", alphaThresholdPercent) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICFormatConverter_CanConvert(this, srcPixelFormat, dstPixelFormat) { hr := DllCall(NumGet(NumGet(this+0)+9*A_PtrSize), "ptr", this, "ptr", srcPixelFormat, "ptr", dstPixelFormat, "ptr*", pfCanConvert) if hr or ErrorLevel or !pfCanConvert _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel "`npfCanConvert=0") } IWICBitmapFrameEncode_SetPixelFormat(this, pPixelFormat) { hr := DllCall(NumGet(NumGet(this+0)+6*A_PtrSize), "ptr", this, "ptr", pPixelFormat) if hr _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } WIC_GUID(ByRef GUID,name){ static init:=1,_:={} if init { init:=0 ; Decoders _.CLSID_WICBmpDecoder:=[0x6b462062, 0x7cbf, 0x400d, 0x9f, 0xdb, 0x81, 0x3d, 0xd1, 0xf, 0x27, 0x78] ,_.CLSID_WICPngDecoder:=[0x389ea17b, 0x5078, 0x4cde, 0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51] ,_.CLSID_WICIcoDecoder:=[0xc61bfcdf, 0x2e0f, 0x4aad, 0xa8, 0xd7, 0xe0, 0x6b, 0xaf, 0xeb, 0xcd, 0xfe] ,_.CLSID_WICJpegDecoder:=[0x9456a480, 0xe88b, 0x43ea, 0x9e, 0x73, 0xb, 0x2d, 0x9b, 0x71, 0xb1, 0xca] ,_.CLSID_WICGifDecoder:=[0x381dda3c, 0x9ce9, 0x4834, 0xa2, 0x3e, 0x1f, 0x98, 0xf8, 0xfc, 0x52, 0xbe] ,_.CLSID_WICTiffDecoder:=[0xb54e85d9, 0xfe23, 0x499f, 0x8b, 0x88, 0x6a, 0xce, 0xa7, 0x13, 0x75, 0x2b] ,_.CLSID_WICWmpDecoder:=[0xa26cec36, 0x234c, 0x4950, 0xae, 0x16, 0xe3, 0x4a, 0xac, 0xe7, 0x1d, 0x0d] ; Encoders _.CLSID_WICBmpEncoder:=[0x69be8bb4, 0xd66d, 0x47c8, 0x86, 0x5a, 0xed, 0x15, 0x89, 0x43, 0x37, 0x82] ,_.CLSID_WICPngEncoder:=[0x27949969, 0x876a, 0x41d7, 0x94, 0x47, 0x56, 0x8f, 0x6a, 0x35, 0xa4, 0xdc] ,_.CLSID_WICJpegEncoder:=[0x1a34f5c1, 0x4a5a, 0x46dc, 0xb6, 0x44, 0x1f, 0x45, 0x67, 0xe7, 0xa6, 0x76] ,_.CLSID_WICGifEncoder:=[0x114f5598, 0xb22, 0x40a0, 0x86, 0xa1, 0xc8, 0x3e, 0xa4, 0x95, 0xad, 0xbd] ,_.CLSID_WICTiffEncoder:=[0x0131be10, 0x2001, 0x4c5f, 0xa9, 0xb0, 0xcc, 0x88, 0xfa, 0xb6, 0x4c, 0xe8] ,_.CLSID_WICWmpEncoder:=[0xac4ce3cb, 0xe1c1, 0x44cd, 0x82, 0x15, 0x5a, 0x16, 0x65, 0x50, 0x9e, 0xc2] ; Container Formats _.GUID_ContainerFormatBmp:=[0xaf1d87e, 0xfcfe, 0x4188, 0xbd, 0xeb, 0xa7, 0x90, 0x64, 0x71, 0xcb, 0xe3] ,_.GUID_ContainerFormatPng:=[0x1b7cfaf4, 0x713f, 0x473c, 0xbb, 0xcd, 0x61, 0x37, 0x42, 0x5f, 0xae, 0xaf] ,_.GUID_ContainerFormatIco:=[0xa3a860c4, 0x338f, 0x4c17, 0x91, 0x9a, 0xfb, 0xa4, 0xb5, 0x62, 0x8f, 0x21] ,_.GUID_ContainerFormatJpeg:=[0x19e4a5aa, 0x5662, 0x4fc5, 0xa0, 0xc0, 0x17, 0x58, 0x2, 0x8e, 0x10, 0x57] ,_.GUID_ContainerFormatTiff:=[0x163bcc30, 0xe2e9, 0x4f0b, 0x96, 0x1d, 0xa3, 0xe9, 0xfd, 0xb7, 0x88, 0xa3] ,_.GUID_ContainerFormatGif:=[0x1f8a5601, 0x7d4d, 0x4cbd, 0x9c, 0x82, 0x1b, 0xc8, 0xd4, 0xee, 0xb9, 0xa5] ,_.GUID_ContainerFormatWmp:=[0x57a37caa, 0x367a, 0x4540, 0x91, 0x6b, 0xf1, 0x83, 0xc5, 0x09, 0x3a, 0x4b] ; Component Identifiers _.CLSID_WICImagingCategories:=[0xfae3d380, 0xfea4, 0x4623, 0x8c, 0x75, 0xc6, 0xb6, 0x11, 0x10, 0xb6, 0x81] ,_.CATID_WICBitmapDecoders:=[0x7ed96837, 0x96f0, 0x4812, 0xb2, 0x11, 0xf1, 0x3c, 0x24, 0x11, 0x7e, 0xd3] ,_.CATID_WICBitmapEncoders:=[0xac757296, 0x3522, 0x4e11, 0x98, 0x62, 0xc1, 0x7b, 0xe5, 0xa1, 0x76, 0x7e] ,_.CATID_WICPixelFormats:=[0x2b46e70f, 0xcda7, 0x473e, 0x89, 0xf6, 0xdc, 0x96, 0x30, 0xa2, 0x39, 0x0b] ,_.CATID_WICFormatConverters:=[0x7835eae8, 0xbf14, 0x49d1, 0x93, 0xce, 0x53, 0x3a, 0x40, 0x7b, 0x22, 0x48] ,_.CATID_WICMetadataReader:=[0x05af94d8, 0x7174, 0x4cd2, 0xbe, 0x4a, 0x41, 0x24, 0xb8, 0x0e, 0xe4, 0xb8] ,_.CATID_WICMetadataWriter:=[0xabe3b9a4, 0x257d, 0x4b97, 0xbd, 0x1a, 0x29, 0x4a, 0xf4, 0x96, 0x22, 0x2e] ; Format Converters _.CLSID_WICDefaultFormatConverter:=[0x1a3f11dc, 0xb514, 0x4b17, 0x8c, 0x5f, 0x21, 0x54, 0x51, 0x38, 0x52, 0xf1] ,_.CLSID_WICFormatConverterHighColor:=[0xac75d454, 0x9f37, 0x48f8, 0xb9, 0x72, 0x4e, 0x19, 0xbc, 0x85, 0x60, 0x11] ,_.CLSID_WICFormatConverterNChannel:=[0xc17cabb2, 0xd4a3, 0x47d7, 0xa5, 0x57, 0x33, 0x9b, 0x2e, 0xfb, 0xd4, 0xf1] ,_.CLSID_WICFormatConverterWMPhoto:=[0x9cb5172b, 0xd600, 0x46ba, 0xab, 0x77, 0x77, 0xbb, 0x7e, 0x3a, 0x00, 0xd9] ; Metadata Handlers _.GUID_MetadataFormatUnknown:=[0xA45E592F, 0x9078, 0x4A7C, 0xAD, 0xB5, 0x4E, 0xDC, 0x4F, 0xD6, 0x1B, 0x1F] ,_.GUID_MetadataFormatIfd:=[0x537396C6, 0x2D8A, 0x4BB6, 0x9B, 0xF8, 0x2F, 0x0A, 0x8E, 0x2A, 0x3A, 0xDF] ,_.GUID_MetadataFormatSubIfd:=[0x58A2E128, 0x2DB9, 0x4E57, 0xBB, 0x14, 0x51, 0x77, 0x89, 0x1E, 0xD3, 0x31] ,_.GUID_MetadataFormatExif:=[0x1C3C4F9D, 0xB84A, 0x467D, 0x94, 0x93, 0x36, 0xCF, 0xBD, 0x59, 0xEA, 0x57] ,_.GUID_MetadataFormatGps:=[0x7134AB8A, 0x9351, 0x44AD, 0xAF, 0x62, 0x44, 0x8D, 0xB6, 0xB5, 0x02, 0xEC] ,_.GUID_MetadataFormatInterop:=[0xED686F8E, 0x681F, 0x4C8B, 0xBD, 0x41, 0xA8, 0xAD, 0xDB, 0xF6, 0xB3, 0xFC] ,_.GUID_MetadataFormatApp0:=[0x79007028, 0x268D, 0x45d6, 0xA3, 0xC2, 0x35, 0x4E, 0x6A, 0x50, 0x4B, 0xC9] ,_.GUID_MetadataFormatApp1:=[0x8FD3DFC3, 0xF951, 0x492B, 0x81, 0x7F, 0x69, 0xC2, 0xE6, 0xD9, 0xA5, 0xB0] ,_.GUID_MetadataFormatApp13:=[0x326556A2, 0xF502, 0x4354, 0x9C, 0xC0, 0x8E, 0x3F, 0x48, 0xEA, 0xF6, 0xB5] ,_.GUID_MetadataFormatIPTC:=[0x4FAB0914, 0xE129, 0x4087, 0xA1, 0xD1, 0xBC, 0x81, 0x2D, 0x45, 0xA7, 0xB5] ,_.GUID_MetadataFormatIRB:=[0x16100D66, 0x8570, 0x4BB9, 0xB9, 0x2D, 0xFD, 0xA4, 0xB2, 0x3E, 0xCE, 0x67] ,_.GUID_MetadataFormat8BIMIPTC:=[0x0010568c, 0x0852, 0x4e6a, 0xb1, 0x91, 0x5c, 0x33, 0xac, 0x5b, 0x04, 0x30] ,_.GUID_MetadataFormat8BIMResolutionInfo:=[0x739F305D, 0x81DB, 0x43CB, 0xAC, 0x5E, 0x55, 0x01, 0x3E, 0xF9, 0xF0, 0x03] _.GUID_MetadataFormat8BIMIPTCDigest:=[0x1CA32285, 0x9CCD, 0x4786, 0x8B, 0xD8, 0x79, 0x53, 0x9D, 0xB6, 0xA0, 0x06] ,_.GUID_MetadataFormatXMP:=[0xBB5ACC38, 0xF216, 0x4CEC, 0xA6, 0xC5, 0x5F, 0x6E, 0x73, 0x97, 0x63, 0xA9] ,_.GUID_MetadataFormatThumbnail:=[0x243dcee9, 0x8703, 0x40ee, 0x8e, 0xf0, 0x22, 0xa6, 0x0, 0xb8, 0x5, 0x8c] ,_.GUID_MetadataFormatChunktEXt:=[0x568d8936, 0xc0a9, 0x4923, 0x90, 0x5d, 0xdf, 0x2b, 0x38, 0x23, 0x8f, 0xbc] ,_.GUID_MetadataFormatXMPStruct:=[0x22383CF1, 0xED17, 0x4E2E, 0xAF, 0x17, 0xD8, 0x5B, 0x8F, 0x6B, 0x30, 0xD0] ,_.GUID_MetadataFormatXMPBag:=[0x833CCA5F, 0xDCB7, 0x4516, 0x80, 0x6F, 0x65, 0x96, 0xAB, 0x26, 0xDC, 0xE4] ,_.GUID_MetadataFormatXMPSeq:=[0x63E8DF02, 0xEB6C,0x456C, 0xA2, 0x24, 0xB2, 0x5E, 0x79, 0x4F, 0xD6, 0x48] ,_.GUID_MetadataFormatXMPAlt:=[0x7B08A675, 0x91AA, 0x481B, 0xA7, 0x98, 0x4D, 0xA9, 0x49, 0x08, 0x61, 0x3B] ,_.GUID_MetadataFormatLSD:=[0xE256031E, 0x6299, 0x4929, 0xB9, 0x8D, 0x5A, 0xC8, 0x84, 0xAF, 0xBA, 0x92] ,_.GUID_MetadataFormatIMD:=[0xBD2BB086, 0x4D52, 0x48DD, 0x96, 0x77, 0xDB, 0x48, 0x3E, 0x85, 0xAE, 0x8F] ,_.GUID_MetadataFormatGCE:=[0x2A25CAD8, 0xDEEB, 0x4C69, 0xA7, 0x88, 0xE, 0xC2, 0x26, 0x6D, 0xCA, 0xFD] ,_.GUID_MetadataFormatAPE:=[0x2E043DC2, 0xC967, 0x4E05, 0x87, 0x5E, 0x61, 0x8B, 0xF6, 0x7E, 0x85, 0xC3] _.GUID_MetadataFormatJpegChrominance:=[0xF73D0DCF, 0xCEC6, 0x4F85, 0x9B, 0x0E, 0x1C, 0x39, 0x56, 0xB1, 0xBE, 0xF7] ,_.GUID_MetadataFormatJpegLuminance:=[0x86908007, 0xEDFC, 0x4860, 0x8D, 0x4B, 0x4E, 0xE6, 0xE8, 0x3E, 0x60, 0x58] ,_.GUID_MetadataFormatJpegComment:=[0x220E5F33, 0xAFD3, 0x474E, 0x9D, 0x31, 0x7D, 0x4F, 0xE7, 0x30, 0xF5, 0x57] ,_.GUID_MetadataFormatGifComment:=[0xC4B6E0E0, 0xCFB4, 0x4AD3, 0xAB, 0x33, 0x9A, 0xAD, 0x23, 0x55, 0xA3, 0x4A] ,_.GUID_MetadataFormatChunkgAMA:=[0xF00935A5, 0x1D5D, 0x4CD1, 0x81, 0xB2, 0x93, 0x24, 0xD7, 0xEC, 0xA7, 0x81] ,_.GUID_MetadataFormatChunkbKGD:=[0xE14D3571, 0x6B47, 0x4DEA, 0xB6, 0xA, 0x87, 0xCE, 0xA, 0x78, 0xDF, 0xB7] ,_.GUID_MetadataFormatChunkiTXt:=[0xC2BEC729, 0xB68, 0x4B77, 0xAA, 0xE, 0x62, 0x95, 0xA6, 0xAC, 0x18, 0x14] ,_.GUID_MetadataFormatChunkcHRM:=[0x9DB3655B, 0x2842, 0x44B3, 0x80, 0x67, 0x12, 0xE9, 0xB3, 0x75, 0x55, 0x6A] ,_.GUID_MetadataFormatChunkhIST:=[0xC59A82DA, 0xDB74, 0x48A4, 0xBD, 0x6A, 0xB6, 0x9C, 0x49, 0x31, 0xEF, 0x95] ,_.GUID_MetadataFormatChunkiCCP:=[0xEB4349AB, 0xB685, 0x450F, 0x91, 0xB5, 0xE8, 0x2, 0xE8, 0x92, 0x53, 0x6C] ,_.GUID_MetadataFormatChunksRGB:=[0xC115FD36, 0xCC6F, 0x4E3F, 0x83, 0x63, 0x52, 0x4B, 0x87, 0xC6, 0xB0, 0xD9] ,_.GUID_MetadataFormatChunktIME:=[0x6B00AE2D, 0xE24B, 0x460A, 0x98, 0xB6, 0x87, 0x8B, 0xD0, 0x30, 0x72, 0xFD] ; Vendor Identification _.GUID_VendorMicrosoft:=[0x69fd0fdc, 0xa866, 0x4108, 0xb3, 0xb2, 0x98, 0x44, 0x7f, 0xa9, 0xed, 0xd4] ,_.GUID_VendorMicrosoftBuiltIn:=[0x257a30fd, 0x6b6, 0x462b, 0xae, 0xa4, 0x63, 0xf7, 0xb, 0x86, 0xe5, 0x33] ; WICBitmapPaletteType _.GUID_WICPixelFormatDontCare:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x00] ,_.GUID_WICPixelFormat1bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x01] ,_.GUID_WICPixelFormat2bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x02] ,_.GUID_WICPixelFormat4bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x03] ,_.GUID_WICPixelFormat8bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x04] ,_.GUID_WICPixelFormatBlackWhite:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x05] ,_.GUID_WICPixelFormat2bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x06] ,_.GUID_WICPixelFormat4bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x07] ,_.GUID_WICPixelFormat8bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x08] ,_.GUID_WICPixelFormat8bppAlpha:=[0xe6cd0116, 0xeeba, 0x4161, 0xaa, 0x85, 0x27, 0xdd, 0x9f, 0xb3, 0xa8, 0x95] ,_.GUID_WICPixelFormat16bppBGR555:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x09] ,_.GUID_WICPixelFormat16bppBGR565:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0a] ,_.GUID_WICPixelFormat16bppBGRA5551:=[0x05ec7c2b, 0xf1e6, 0x4961, 0xad, 0x46, 0xe1, 0xcc, 0x81, 0x0a, 0x87, 0xd2] _.GUID_WICPixelFormat16bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0b] ,_.GUID_WICPixelFormat24bppBGR:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0c] ,_.GUID_WICPixelFormat24bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0d] ,_.GUID_WICPixelFormat32bppBGR:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0e] ,_.GUID_WICPixelFormat32bppBGRA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0f] ,_.GUID_WICPixelFormat32bppPBGRA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x10] ,_.GUID_WICPixelFormat32bppGrayFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x11] ,_.GUID_WICPixelFormat32bppRGBA:=[0xf5c7ad2d, 0x6a8d, 0x43dd, 0xa7, 0xa8, 0xa2, 0x99, 0x35, 0x26, 0x1a, 0xe9] ,_.GUID_WICPixelFormat32bppPRGBA:=[0x3cc4a650, 0xa527, 0x4d37, 0xa9, 0x16, 0x31, 0x42, 0xc7, 0xeb, 0xed, 0xba] ,_.GUID_WICPixelFormat48bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x15] ,_.GUID_WICPixelFormat48bppBGR:=[0xe605a384, 0xb468, 0x46ce, 0xbb, 0x2e, 0x36, 0xf1, 0x80, 0xe6, 0x43, 0x13] ,_.GUID_WICPixelFormat64bppRGBA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x16] ,_.GUID_WICPixelFormat64bppBGRA:=[ 0x1562ff7c, 0xd352, 0x46f9, 0x97, 0x9e, 0x42, 0x97, 0x6b, 0x79, 0x22, 0x46] _.GUID_WICPixelFormat64bppPRGBA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x17] ,_.GUID_WICPixelFormat64bppPBGRA:=[0x8c518e8e, 0xa4ec, 0x468b, 0xae, 0x70, 0xc9, 0xa3, 0x5a, 0x9c, 0x55, 0x30] ,_.GUID_WICPixelFormat16bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x13] ,_.GUID_WICPixelFormat32bppBGR101010:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x14] ,_.GUID_WICPixelFormat48bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x12] ,_.GUID_WICPixelFormat48bppBGRFixedPoint:=[0x49ca140e, 0xcab6, 0x493b, 0x9d, 0xdf, 0x60, 0x18, 0x7c, 0x37, 0x53, 0x2a] ,_.GUID_WICPixelFormat96bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x18] ,_.GUID_WICPixelFormat128bppRGBAFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x19] ,_.GUID_WICPixelFormat128bppPRGBAFloat:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1a] ,_.GUID_WICPixelFormat128bppRGBFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1b] ,_.GUID_WICPixelFormat32bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1c] ,_.GUID_WICPixelFormat64bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1d] ,_.GUID_WICPixelFormat64bppBGRAFixedPoint:=[0x356de33c, 0x54d2, 0x4a23, 0xbb, 0x4, 0x9b, 0x7b, 0xf9, 0xb1, 0xd4, 0x2d] _.GUID_WICPixelFormat64bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x40] ,_.GUID_WICPixelFormat128bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1e] ,_.GUID_WICPixelFormat128bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x41] ,_.GUID_WICPixelFormat64bppRGBAHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3a] ,_.GUID_WICPixelFormat64bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x42] ,_.GUID_WICPixelFormat48bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3b] ,_.GUID_WICPixelFormat32bppRGBE:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3d] ,_.GUID_WICPixelFormat16bppGrayHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3e] ,_.GUID_WICPixelFormat32bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3f] ,_.GUID_WICPixelFormat32bppRGBA1010102:=[0x25238D72, 0xFCF9, 0x4522, 0xb5, 0x14, 0x55, 0x78, 0xe5, 0xad, 0x55, 0xe0] ,_.GUID_WICPixelFormat32bppRGBA1010102XR:=[0x00DE6B9A, 0xC101, 0x434b, 0xb5, 0x02, 0xd0, 0x16, 0x5e, 0xe1, 0x12, 0x2c] ,_.GUID_WICPixelFormat64bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1f] ,_.GUID_WICPixelFormat24bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x20] _.GUID_WICPixelFormat32bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x21] ,_.GUID_WICPixelFormat40bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x22] ,_.GUID_WICPixelFormat48bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x23] ,_.GUID_WICPixelFormat56bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x24] ,_.GUID_WICPixelFormat64bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x25] ,_.GUID_WICPixelFormat48bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x26] ,_.GUID_WICPixelFormat64bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x27] ,_.GUID_WICPixelFormat80bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x28] ,_.GUID_WICPixelFormat96bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x29] ,_.GUID_WICPixelFormat112bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2a] ,_.GUID_WICPixelFormat128bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2b] ,_.GUID_WICPixelFormat40bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2c] ,_.GUID_WICPixelFormat80bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2d] ,_.GUID_WICPixelFormat32bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2e] _.GUID_WICPixelFormat40bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2f] ,_.GUID_WICPixelFormat48bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x30] ,_.GUID_WICPixelFormat56bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x31] ,_.GUID_WICPixelFormat64bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x32] ,_.GUID_WICPixelFormat72bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x33] ,_.GUID_WICPixelFormat64bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x34] ,_.GUID_WICPixelFormat80bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x35] ,_.GUID_WICPixelFormat96bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x36] ,_.GUID_WICPixelFormat112bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x37] ,_.GUID_WICPixelFormat128bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x38] ,_.GUID_WICPixelFormat144bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x39] } if _.haskey(name){ p:=_[name] VarSetCapacity(GUID,16) ,NumPut(p.1+(p.2<<32)+(p.3<<48),GUID,0,"int64") ,NumPut(p.4+(p.5<<8)+(p.6<<16)+(p.7<<24)+(p.8<<32)+(p.9<<40)+(p.10<<48)+(p.11<<56),GUID,8,"int64") return &GUID }else return name } WIC_hr(a){ static init:=1,err:={0x8000FFFF:"Catastrophic failure error.",0x80004001:"Not implemented error.",0x8007000E:"Out of memory error.",0x80070057:"One or more arguments are not valid error.",0x80004002:"Interface not supported error.",0x80004003:"Pointer not valid error.",0x80070006:"Handle not valid error.",0x80004004:"Operation aborted error.",0x80004005:"Unspecified error.",0x80070005:"General access denied error.",0x800401E5:"The object identified by this moniker could not be found."} if init{ init:=0 err[0x80004005]:="WINCODEC_ERR_GENERIC_ERROR" ,err[0x80070057]:="WINCODEC_ERR_INVALIDPARAMETER" ,err[0x8007000E]:="WINCODEC_ERR_OUTOFMEMORY" ,err[0x80004001]:="WINCODEC_ERR_NOTIMPLEMENTED" ,err[0x80004004]:="WINCODEC_ERR_ABORTED" ,err[0x80070005]:="WINCODEC_ERR_ACCESSDENIED" ,err[0x88982f04]:="WINCODEC_ERR_WRONGSTATE" ,err[0x88982f05]:="WINCODEC_ERR_VALUEOUTOFRANGE" ,err[0x88982f07]:="WINCODEC_ERR_UNKNOWNIMAGEFORMAT" ,err[0x88982f0B]:="WINCODEC_ERR_UNSUPPORTEDVERSION" ,err[0x88982f0C]:="WINCODEC_ERR_NOTINITIALIZED" ,err[0x88982f0D]:="WINCODEC_ERR_ALREADYLOCKED" ,err[0x88982f40]:="WINCODEC_ERR_PROPERTYNOTFOUND" ,err[0x88982f41]:="WINCODEC_ERR_PROPERTYNOTSUPPORTED" ,err[0x88982f42]:="WINCODEC_ERR_PROPERTYSIZE" ,err[0x88982f43]:="WINCODEC_ERR_CODECPRESENT" ,err[0x88982f44]:="WINCODEC_ERR_CODECNOTHUMBNAIL" ,err[0x88982f45]:="WINCODEC_ERR_PALETTEUNAVAILABLE" ,err[0x88982f46]:="WINCODEC_ERR_CODECTOOMANYSCANLINES" ,err[0x88982f48]:="WINCODEC_ERR_INTERNALERROR" ,err[0x88982f49]:="WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS" ,err[0x88982f50]:="WINCODEC_ERR_COMPONENTNOTFOUND" err[0x88982f51]:="WINCODEC_ERR_IMAGESIZEOUTOFRANGE" ,err[0x88982f52]:="WINCODEC_ERR_TOOMUCHMETADATA" ,err[0x88982f60]:="WINCODEC_ERR_BADIMAGE" ,err[0x88982f61]:="WINCODEC_ERR_BADHEADER" ,err[0x88982f62]:="WINCODEC_ERR_FRAMEMISSING" ,err[0x88982f63]:="WINCODEC_ERR_BADMETADATAHEADER" ,err[0x88982f70]:="WINCODEC_ERR_BADSTREAMDATA" ,err[0x88982f71]:="WINCODEC_ERR_STREAMWRITE" ,err[0x88982f72]:="WINCODEC_ERR_STREAMREAD" ,err[0x88982f73]:="WINCODEC_ERR_STREAMNOTAVAILABLE" ,err[0x88982f80]:="WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT" ,err[0x88982f81]:="WINCODEC_ERR_UNSUPPORTEDOPERATION" ,err[0x88982f8A]:="WINCODEC_ERR_INVALIDREGISTRATION" ,err[0x88982f8B]:="WINCODEC_ERR_COMPONENTINITIALIZEFAILURE" ,err[0x88982f8C]:="WINCODEC_ERR_INSUFFICIENTBUFFER" ,err[0x88982f8D]:="WINCODEC_ERR_DUPLICATEMETADATAPRESENT" ,err[0x88982f8E]:="WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE" ,err[0x88982f8F]:="WINCODEC_ERR_UNEXPECTEDSIZE" ,err[0x88982f90]:="WINCODEC_ERR_INVALIDQUERYREQUEST" ,err[0x88982f91]:="WINCODEC_ERR_UNEXPECTEDMETADATATYPE" ,err[0x88982f92]:="WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT" ,err[0x88982f93]:="WINCODEC_ERR_INVALIDQUERYCHARACTER" } if a && (a&=0xFFFFFFFF) { if err.haskey(a) return err[a] } return a }
Gdip_SaveBitmapToFile(pBitmap, file)
in your ;find picture comment, i'm getting an all black file. the previous non-gdip-stream version worked though
EDIT:
nevermind, i didnt see the subregion and coords specified. i plugged in the memstream stuff into the old version and it does work. thanks
Re: Anti-cheat black screen
@malcevmalcev wrote: ↑21 Nov 2019, 04:16Just tried to hack SetWindowDisplayAffinity with non-documented DwmpDxGetWindowSharedSurface function.
It will not work with hardware-accelerated windows.Code: Select all
file := "file.bmp" ; can be: png, bmp, jpg, tiff, gif captureHwnd := 0x917ea setbatchlines -1 formatGuid := WIC_GUID(GUID, "GUID_WICPixelFormat32bppBGRA") Extension := RegexReplace(file, "^.+\.") if (Extension = "png") ContainerFormat := "GUID_ContainerFormatPng" else if (Extension = "bmp") ContainerFormat := "GUID_ContainerFormatBmp" else if (Extension = "jpg") ContainerFormat := "GUID_ContainerFormatJpeg" else if (Extension = "tiff") ContainerFormat := "GUID_ContainerFormatTiff" else if (Extension = "gif") ContainerFormat := "GUID_ContainerFormatGif" else { msgbox extension %Extension% cannot use ExitApp } LOAD_DLL_D3D11_DXGI_DWMAPI() GrantedCapacity := VarSetCapacity(D3D_FEATURE_LEVEL, 8, 0) NumPut(D3D_FEATURE_LEVEL_11_0 := 0xb000, D3D_FEATURE_LEVEL, 0, "uint") NumPut(D3D_FEATURE_LEVEL_10_1 := 0xa100, D3D_FEATURE_LEVEL, 4, "uint") D3D11CreateDevice(0, D3D_DRIVER_TYPE_HARDWARE := 1, 0, D3D11_CREATE_DEVICE_BGRA_SUPPORT := 0x20, &D3D_FEATURE_LEVEL, GrantedCapacity//4, D3D11_SDK_VERSION := 7, d3d_device, 0, d3d_context) QueryInterface(d3d_device, IID_IDXGIDevice := "{54ec77fa-1377-44e6-8c32-88fd5f44c84c}", dxgiDevice) IDXGIDevice_GetParent(dxgiDevice, IID_IDXGIAdapter := "{2411e7e1-12ac-4ccf-bd14-9798e8534dc0}", adapter) VarSetCapacity(DXGI_ADAPTER_DESC, 280+3*A_PtrSize, 0) IDXGIAdapter_GetDesc(adapter, &DXGI_ADAPTER_DESC) luidAdapter := NumGet(DXGI_ADAPTER_DESC, 272+3*A_PtrSize, "int64") ObjRelease(dxgiDevice) Release(adapter) dxgiDevice := adapter := "" DwmpDxGetWindowSharedSurface(captureHwnd, luidAdapter, 0, DWM_REDIRECTION_FLAG_SUPPORT_PRESENT_TO_GDI_SURFACE := 0x10, pfmtWindow, phDxSurface, puiUpdateId) DwmpDxUpdateWindowSharedSurface(captureHwnd, puiUpdateId, 0, 0, 0) ID3D11Device_OpenSharedResource(d3d_device, phDxSurface, ID3D11Resource := "{dc8e63f3-d12b-4952-b47b-5e45026a862d}", resource) QueryInterface(resource, IID_ID3D11Texture2D := "{6f15aaf2-d208-4e89-9ab4-489535d34f9c}", d3d11Tex) VarSetCapacity(D3D11_TEXTURE2D_DESC, 44, 0) ID3D11Texture2D_GetDesc(d3d11Tex, &D3D11_TEXTURE2D_DESC) Width := NumGet(D3D11_TEXTURE2D_DESC, 0, "int") Height := NumGet(D3D11_TEXTURE2D_DESC, 4, "int") NumPut(1, D3D11_TEXTURE2D_DESC, 8, "uint") ; MipLevels NumPut(1, D3D11_TEXTURE2D_DESC, 12, "uint") ; ArraySize NumPut(DXGI_FORMAT_B8G8R8A8_UNORM := 87, D3D11_TEXTURE2D_DESC, 16, "uint") ; Format NumPut(1, D3D11_TEXTURE2D_DESC, 20, "uint") ; SampleDescCount NumPut(0, D3D11_TEXTURE2D_DESC, 24, "uint") ; SampleDescQuality NumPut(D3D11_USAGE_STAGING := 3, D3D11_TEXTURE2D_DESC, 28, "uint") ; Usage NumPut(0, D3D11_TEXTURE2D_DESC, 32, "uint") ; BindFlags NumPut(D3D11_CPU_ACCESS_READ := 0x20000, D3D11_TEXTURE2D_DESC, 36, "uint") ; CPUAccessFlags NumPut(0, D3D11_TEXTURE2D_DESC, 40, "uint") ; MiscFlags ID3D11Device_CreateTexture2D(d3d_device, &D3D11_TEXTURE2D_DESC, 0, staging_tex) Release(d3d_device) Release(resource) d3d_device := resource := "" loop 1 { ID3D11DeviceContext_CopyResource(d3d_context, staging_tex, d3d11Tex) VarSetCapacity(D3D11_MAPPED_SUBRESOURCE, 8+A_PtrSize, 0) ID3D11DeviceContext_Map(d3d_context, staging_tex, 0, D3D11_MAP_READ := 1, 0, &D3D11_MAPPED_SUBRESOURCE) pBits := NumGet(D3D11_MAPPED_SUBRESOURCE, 0, "ptr") pitch := NumGet(D3D11_MAPPED_SUBRESOURCE, A_PtrSize, "uint") if !wic wic := IWICCreate() IWICImagingFactory_CreateStream(wic, stream) IWICStream_InitializeFromFilename(stream, file, GENERIC_WRITE := 0x40000000) IWICImagingFactory_CreateEncoder(wic, ContainerFormat, 0, encoder) IWICBitmapEncoder_Initialize(encoder, stream, WICBitmapEncoderNoCache := 0x2) IWICBitmapEncoder_CreateNewFrame(encoder, frame) IWICBitmapFrameEncode_Initialize(frame) IWICBitmapFrameEncode_SetSize(frame, width, height) IWICImagingFactory_CreateFormatConverter(wic, FormatConverter) IWICImagingFactory_CreateBitmapFromMemory(wic, width, height, formatGuid, pitch, pitch * height, pBits, Bitmap) IWICFormatConverter_Initialize(FormatConverter, Bitmap, "GUID_WICPixelFormat24bppBGR", WICBitmapDitherTypeNone := 0, 0, 0, WICBitmapPaletteTypeMedianCut := 0x1) IWICBitmapFrameEncode_SetPixelFormat(frame, formatGuid) VarSetCapacity(Rect, 16, 0) NumPut(width, Rect, 8, "int") NumPut(height, Rect, 12, "int") IWICBitmapFrameEncode_WriteSource(frame, FormatConverter, &Rect) Release(FormatConverter) Release(Bitmap) FormatConverter := Bitmap := "" IWICBitmapFrameEncode_Commit(frame) IWICBitmapEncoder_Commit(encoder) Release(stream) Release(frame) Release(encoder) stream := frame := encoder := "" ID3D11DeviceContext_Unmap(d3d_context, staging_tex, 0) } msgbox done ExitApp DwmpDxGetWindowSharedSurface(hwnd, luidAdapter, hmonitorAssociation, dwFlags, ByRef pfmtWindow, ByRef phDxSurface, ByRef puiUpdateId) { hr := DllCall("dwmapi.dll\DwmpDxGetWindowSharedSurface", "ptr", hwnd, "int64", luidAdapter, "ptr", hmonitorAssociation, "uint", dwFlags, "uint*", pfmtWindow, "ptr*", phDxSurface, "int64*", puiUpdateId) if (hr != 0x00263005) or ErrorLevel ; DWM_S_GDI_REDIRECTION_SURFACE _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } DwmpDxUpdateWindowSharedSurface(hwnd, uiUpdateId, dwFlags, hmonitorAssociation, prc) { hr := DllCall("dwmapi.dll\DwmpDxUpdateWindowSharedSurface", "ptr", hwnd, "int64", uiUpdateId, "int", dwFlags, "ptr", hmonitorAssociation, "ptr", prc) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } D3D11CreateDevice(pAdapter, DriverType, Software, Flags, pFeatureLevels, FeatureLevels, SDKVersion, ByRef ppDevice, ByRef pFeatureLevel, ByRef ppImmediateContext) { hr := DllCall("D3D11\D3D11CreateDevice", "ptr", pAdapter, "int", DriverType, "ptr", Software, "uint", Flags, "ptr", pFeatureLevels, "uint", FeatureLevels, "uint", SDKVersion, "ptr*", ppDevice, "ptr*", pFeatureLevel, "ptr*", ppImmediateContext) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11Texture2D_GetDesc(this, pDesc) { DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr", pDesc) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11Device_CreateTexture2D(this, pDesc, pInitialData, ByRef ppTexture2D) { hr := DllCall(NumGet(NumGet(this+0)+5*A_PtrSize), "ptr", this, "ptr", pDesc, "ptr", pInitialData, "ptr*", ppTexture2D) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11DeviceContext_CopyResource(this, pDstResource, pSrcResource) { hr := DllCall(NumGet(NumGet(this+0)+47*A_PtrSize), "ptr", this, "ptr", pDstResource, "ptr", pSrcResource) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11Device_OpenSharedResource(this, phDxSurface, MIDL_INTERFACE, ByRef ppResource) { GUID(riid, MIDL_INTERFACE) hr := DllCall(NumGet(NumGet(this+0)+28*A_PtrSize), "ptr", this, "ptr", phDxSurface, "ptr", &riid, "ptr*", ppResource) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11DeviceContext_Map(this, pResource, Subresource, MapType, MapFlags, pMappedResource) { hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize), "ptr", this, "ptr", pResource, "uint", Subresource, "uint", MapType, "uint", MapFlags, "ptr", pMappedResource) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11DeviceContext_Unmap(this, pResource, Subresource) { hr := DllCall(NumGet(NumGet(this+0)+15*A_PtrSize), "ptr", this, "ptr", pResource, "uint", Subresource) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } IDXGIAdapter_GetDesc(this, pDesc) { hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", pDesc) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } IDXGIDevice_GetParent(this, MIDL_INTERFACE, ByRef ppParent) { GUID(riid, MIDL_INTERFACE) hr := DllCall(NumGet(NumGet(this+0)+6*A_PtrSize), "ptr", this, "ptr", &riid, "ptr*", ppParent) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } QueryInterface(ComObject, SID, ByRef InterfacePointer) { InterfacePointer := ComObjQuery(ComObject, SID) if !InterfacePointer or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } Release(this) { DllCall(NumGet(NumGet(this+0)+2*A_PtrSize), "ptr", this) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } GUID(ByRef GUID, sGUID) { VarSetCapacity(GUID, 16, 0) return DllCall("ole32\CLSIDFromString", "WStr", sGUID, "Ptr", &GUID) >= 0 ? &GUID : "" } LOAD_DLL_D3D11_DXGI_DWMAPI() { if !DllCall("GetModuleHandle","str","DXGI") DllCall("LoadLibrary","str","DXGI") if !DllCall("GetModuleHandle","str","D3D11") DllCall("LoadLibrary","str","D3D11") if !DllCall("GetModuleHandle","str","dwmapi") DllCall("LoadLibrary","str","dwmapi.dll") } _Error(val) { msgbox % val ExitApp } IWICCreate() { return ComObjCreate("{cacaf262-9370-4615-a13b-9f5539da4c0a}", "{ec5ec8a9-c395-4314-9c77-54d7a935ff70}") } IWICImagingFactory_CreateStream(this, ByRef ppIWICStream) { hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize), "ptr", this, "ptr*", ppIWICStream) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICImagingFactory_CreateFormatConverter(this, ByRef ppIFormatConverter) { hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFormatConverter) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICStream_InitializeFromFilename(this, wzFileName, dwDesiredAccess) { hr := DllCall(NumGet(NumGet(this+0)+15*A_PtrSize), "ptr", this, "str", wzFileName, "uint", dwDesiredAccess) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICImagingFactory_CreateEncoder(this, guidContainerFormat, pguidVendor, ByRef ppIEncoder) { hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", WIC_GUID(GUID1, guidContainerFormat), "ptr", WIC_GUID(GUID2, pguidVendor), "ptr*", ppIEncoder) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapEncoder_Initialize(this, pIStream, cacheOption) { hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIStream, "int", cacheOption) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapEncoder_CreateNewFrame(this, ByRef ppIFrameEncode, ppIEncoderOptions := 0) { hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFrameEncode, "ptr*", ppIEncoderOptions) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapEncoder_Commit(this) { hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_Initialize(this, pIEncoderOptions := 0) { hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIEncoderOptions) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_SetSize(this, uiWidth, uiHeight) { hr := DllCall(NumGet(NumGet(this+0)+4*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_WritePixels(this, lineCount, cbStride, cbBufferSize, pbPixels) { hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "uint", lineCount, "uint", cbStride, "uint", cbBufferSize, "ptr", pbPixels) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_Commit(this) { hr := DllCall(NumGet(NumGet(this+0)+12*A_PtrSize), "ptr", this) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_WriteSource(this, pIBitmapSource, prc) { hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this, "ptr", pIBitmapSource, "ptr", prc) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICImagingFactory_CreateBitmapFromMemory(this, uiWidth, uiHeight, pixelFormat, cbStride, cbBufferSize, pbBuffer, ByRef ppIBitmap) { hr := DllCall(NumGet(NumGet(this+0)+20*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight, "ptr", pixelFormat, "uint", cbStride, "uint", cbBufferSize, "ptr", pbBuffer, "ptr*", ppIBitmap) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICFormatConverter_Initialize(this, pISource, dstFormat, dither, pIPalette, alphaThresholdPercent, paletteTranslate) { dstFormat := WIC_GUID(GUID, dstFormat) hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", pISource, "ptr", dstFormat, "uint", dither, "ptr", pIPalette, "double", alphaThresholdPercent, "uint", alphaThresholdPercent) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICFormatConverter_CanConvert(this, srcPixelFormat, dstPixelFormat) { hr := DllCall(NumGet(NumGet(this+0)+9*A_PtrSize), "ptr", this, "ptr", srcPixelFormat, "ptr", dstPixelFormat, "ptr*", pfCanConvert) if hr or ErrorLevel or !pfCanConvert _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel "`npfCanConvert=0") } IWICBitmapFrameEncode_SetPixelFormat(this, pPixelFormat) { hr := DllCall(NumGet(NumGet(this+0)+6*A_PtrSize), "ptr", this, "ptr", pPixelFormat) if hr _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } WIC_GUID(ByRef GUID,name){ static init:=1,_:={} if init { init:=0 ; Decoders _.CLSID_WICBmpDecoder:=[0x6b462062, 0x7cbf, 0x400d, 0x9f, 0xdb, 0x81, 0x3d, 0xd1, 0xf, 0x27, 0x78] ,_.CLSID_WICPngDecoder:=[0x389ea17b, 0x5078, 0x4cde, 0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51] ,_.CLSID_WICIcoDecoder:=[0xc61bfcdf, 0x2e0f, 0x4aad, 0xa8, 0xd7, 0xe0, 0x6b, 0xaf, 0xeb, 0xcd, 0xfe] ,_.CLSID_WICJpegDecoder:=[0x9456a480, 0xe88b, 0x43ea, 0x9e, 0x73, 0xb, 0x2d, 0x9b, 0x71, 0xb1, 0xca] ,_.CLSID_WICGifDecoder:=[0x381dda3c, 0x9ce9, 0x4834, 0xa2, 0x3e, 0x1f, 0x98, 0xf8, 0xfc, 0x52, 0xbe] ,_.CLSID_WICTiffDecoder:=[0xb54e85d9, 0xfe23, 0x499f, 0x8b, 0x88, 0x6a, 0xce, 0xa7, 0x13, 0x75, 0x2b] ,_.CLSID_WICWmpDecoder:=[0xa26cec36, 0x234c, 0x4950, 0xae, 0x16, 0xe3, 0x4a, 0xac, 0xe7, 0x1d, 0x0d] ; Encoders _.CLSID_WICBmpEncoder:=[0x69be8bb4, 0xd66d, 0x47c8, 0x86, 0x5a, 0xed, 0x15, 0x89, 0x43, 0x37, 0x82] ,_.CLSID_WICPngEncoder:=[0x27949969, 0x876a, 0x41d7, 0x94, 0x47, 0x56, 0x8f, 0x6a, 0x35, 0xa4, 0xdc] ,_.CLSID_WICJpegEncoder:=[0x1a34f5c1, 0x4a5a, 0x46dc, 0xb6, 0x44, 0x1f, 0x45, 0x67, 0xe7, 0xa6, 0x76] ,_.CLSID_WICGifEncoder:=[0x114f5598, 0xb22, 0x40a0, 0x86, 0xa1, 0xc8, 0x3e, 0xa4, 0x95, 0xad, 0xbd] ,_.CLSID_WICTiffEncoder:=[0x0131be10, 0x2001, 0x4c5f, 0xa9, 0xb0, 0xcc, 0x88, 0xfa, 0xb6, 0x4c, 0xe8] ,_.CLSID_WICWmpEncoder:=[0xac4ce3cb, 0xe1c1, 0x44cd, 0x82, 0x15, 0x5a, 0x16, 0x65, 0x50, 0x9e, 0xc2] ; Container Formats _.GUID_ContainerFormatBmp:=[0xaf1d87e, 0xfcfe, 0x4188, 0xbd, 0xeb, 0xa7, 0x90, 0x64, 0x71, 0xcb, 0xe3] ,_.GUID_ContainerFormatPng:=[0x1b7cfaf4, 0x713f, 0x473c, 0xbb, 0xcd, 0x61, 0x37, 0x42, 0x5f, 0xae, 0xaf] ,_.GUID_ContainerFormatIco:=[0xa3a860c4, 0x338f, 0x4c17, 0x91, 0x9a, 0xfb, 0xa4, 0xb5, 0x62, 0x8f, 0x21] ,_.GUID_ContainerFormatJpeg:=[0x19e4a5aa, 0x5662, 0x4fc5, 0xa0, 0xc0, 0x17, 0x58, 0x2, 0x8e, 0x10, 0x57] ,_.GUID_ContainerFormatTiff:=[0x163bcc30, 0xe2e9, 0x4f0b, 0x96, 0x1d, 0xa3, 0xe9, 0xfd, 0xb7, 0x88, 0xa3] ,_.GUID_ContainerFormatGif:=[0x1f8a5601, 0x7d4d, 0x4cbd, 0x9c, 0x82, 0x1b, 0xc8, 0xd4, 0xee, 0xb9, 0xa5] ,_.GUID_ContainerFormatWmp:=[0x57a37caa, 0x367a, 0x4540, 0x91, 0x6b, 0xf1, 0x83, 0xc5, 0x09, 0x3a, 0x4b] ; Component Identifiers _.CLSID_WICImagingCategories:=[0xfae3d380, 0xfea4, 0x4623, 0x8c, 0x75, 0xc6, 0xb6, 0x11, 0x10, 0xb6, 0x81] ,_.CATID_WICBitmapDecoders:=[0x7ed96837, 0x96f0, 0x4812, 0xb2, 0x11, 0xf1, 0x3c, 0x24, 0x11, 0x7e, 0xd3] ,_.CATID_WICBitmapEncoders:=[0xac757296, 0x3522, 0x4e11, 0x98, 0x62, 0xc1, 0x7b, 0xe5, 0xa1, 0x76, 0x7e] ,_.CATID_WICPixelFormats:=[0x2b46e70f, 0xcda7, 0x473e, 0x89, 0xf6, 0xdc, 0x96, 0x30, 0xa2, 0x39, 0x0b] ,_.CATID_WICFormatConverters:=[0x7835eae8, 0xbf14, 0x49d1, 0x93, 0xce, 0x53, 0x3a, 0x40, 0x7b, 0x22, 0x48] ,_.CATID_WICMetadataReader:=[0x05af94d8, 0x7174, 0x4cd2, 0xbe, 0x4a, 0x41, 0x24, 0xb8, 0x0e, 0xe4, 0xb8] ,_.CATID_WICMetadataWriter:=[0xabe3b9a4, 0x257d, 0x4b97, 0xbd, 0x1a, 0x29, 0x4a, 0xf4, 0x96, 0x22, 0x2e] ; Format Converters _.CLSID_WICDefaultFormatConverter:=[0x1a3f11dc, 0xb514, 0x4b17, 0x8c, 0x5f, 0x21, 0x54, 0x51, 0x38, 0x52, 0xf1] ,_.CLSID_WICFormatConverterHighColor:=[0xac75d454, 0x9f37, 0x48f8, 0xb9, 0x72, 0x4e, 0x19, 0xbc, 0x85, 0x60, 0x11] ,_.CLSID_WICFormatConverterNChannel:=[0xc17cabb2, 0xd4a3, 0x47d7, 0xa5, 0x57, 0x33, 0x9b, 0x2e, 0xfb, 0xd4, 0xf1] ,_.CLSID_WICFormatConverterWMPhoto:=[0x9cb5172b, 0xd600, 0x46ba, 0xab, 0x77, 0x77, 0xbb, 0x7e, 0x3a, 0x00, 0xd9] ; Metadata Handlers _.GUID_MetadataFormatUnknown:=[0xA45E592F, 0x9078, 0x4A7C, 0xAD, 0xB5, 0x4E, 0xDC, 0x4F, 0xD6, 0x1B, 0x1F] ,_.GUID_MetadataFormatIfd:=[0x537396C6, 0x2D8A, 0x4BB6, 0x9B, 0xF8, 0x2F, 0x0A, 0x8E, 0x2A, 0x3A, 0xDF] ,_.GUID_MetadataFormatSubIfd:=[0x58A2E128, 0x2DB9, 0x4E57, 0xBB, 0x14, 0x51, 0x77, 0x89, 0x1E, 0xD3, 0x31] ,_.GUID_MetadataFormatExif:=[0x1C3C4F9D, 0xB84A, 0x467D, 0x94, 0x93, 0x36, 0xCF, 0xBD, 0x59, 0xEA, 0x57] ,_.GUID_MetadataFormatGps:=[0x7134AB8A, 0x9351, 0x44AD, 0xAF, 0x62, 0x44, 0x8D, 0xB6, 0xB5, 0x02, 0xEC] ,_.GUID_MetadataFormatInterop:=[0xED686F8E, 0x681F, 0x4C8B, 0xBD, 0x41, 0xA8, 0xAD, 0xDB, 0xF6, 0xB3, 0xFC] ,_.GUID_MetadataFormatApp0:=[0x79007028, 0x268D, 0x45d6, 0xA3, 0xC2, 0x35, 0x4E, 0x6A, 0x50, 0x4B, 0xC9] ,_.GUID_MetadataFormatApp1:=[0x8FD3DFC3, 0xF951, 0x492B, 0x81, 0x7F, 0x69, 0xC2, 0xE6, 0xD9, 0xA5, 0xB0] ,_.GUID_MetadataFormatApp13:=[0x326556A2, 0xF502, 0x4354, 0x9C, 0xC0, 0x8E, 0x3F, 0x48, 0xEA, 0xF6, 0xB5] ,_.GUID_MetadataFormatIPTC:=[0x4FAB0914, 0xE129, 0x4087, 0xA1, 0xD1, 0xBC, 0x81, 0x2D, 0x45, 0xA7, 0xB5] ,_.GUID_MetadataFormatIRB:=[0x16100D66, 0x8570, 0x4BB9, 0xB9, 0x2D, 0xFD, 0xA4, 0xB2, 0x3E, 0xCE, 0x67] ,_.GUID_MetadataFormat8BIMIPTC:=[0x0010568c, 0x0852, 0x4e6a, 0xb1, 0x91, 0x5c, 0x33, 0xac, 0x5b, 0x04, 0x30] ,_.GUID_MetadataFormat8BIMResolutionInfo:=[0x739F305D, 0x81DB, 0x43CB, 0xAC, 0x5E, 0x55, 0x01, 0x3E, 0xF9, 0xF0, 0x03] _.GUID_MetadataFormat8BIMIPTCDigest:=[0x1CA32285, 0x9CCD, 0x4786, 0x8B, 0xD8, 0x79, 0x53, 0x9D, 0xB6, 0xA0, 0x06] ,_.GUID_MetadataFormatXMP:=[0xBB5ACC38, 0xF216, 0x4CEC, 0xA6, 0xC5, 0x5F, 0x6E, 0x73, 0x97, 0x63, 0xA9] ,_.GUID_MetadataFormatThumbnail:=[0x243dcee9, 0x8703, 0x40ee, 0x8e, 0xf0, 0x22, 0xa6, 0x0, 0xb8, 0x5, 0x8c] ,_.GUID_MetadataFormatChunktEXt:=[0x568d8936, 0xc0a9, 0x4923, 0x90, 0x5d, 0xdf, 0x2b, 0x38, 0x23, 0x8f, 0xbc] ,_.GUID_MetadataFormatXMPStruct:=[0x22383CF1, 0xED17, 0x4E2E, 0xAF, 0x17, 0xD8, 0x5B, 0x8F, 0x6B, 0x30, 0xD0] ,_.GUID_MetadataFormatXMPBag:=[0x833CCA5F, 0xDCB7, 0x4516, 0x80, 0x6F, 0x65, 0x96, 0xAB, 0x26, 0xDC, 0xE4] ,_.GUID_MetadataFormatXMPSeq:=[0x63E8DF02, 0xEB6C,0x456C, 0xA2, 0x24, 0xB2, 0x5E, 0x79, 0x4F, 0xD6, 0x48] ,_.GUID_MetadataFormatXMPAlt:=[0x7B08A675, 0x91AA, 0x481B, 0xA7, 0x98, 0x4D, 0xA9, 0x49, 0x08, 0x61, 0x3B] ,_.GUID_MetadataFormatLSD:=[0xE256031E, 0x6299, 0x4929, 0xB9, 0x8D, 0x5A, 0xC8, 0x84, 0xAF, 0xBA, 0x92] ,_.GUID_MetadataFormatIMD:=[0xBD2BB086, 0x4D52, 0x48DD, 0x96, 0x77, 0xDB, 0x48, 0x3E, 0x85, 0xAE, 0x8F] ,_.GUID_MetadataFormatGCE:=[0x2A25CAD8, 0xDEEB, 0x4C69, 0xA7, 0x88, 0xE, 0xC2, 0x26, 0x6D, 0xCA, 0xFD] ,_.GUID_MetadataFormatAPE:=[0x2E043DC2, 0xC967, 0x4E05, 0x87, 0x5E, 0x61, 0x8B, 0xF6, 0x7E, 0x85, 0xC3] _.GUID_MetadataFormatJpegChrominance:=[0xF73D0DCF, 0xCEC6, 0x4F85, 0x9B, 0x0E, 0x1C, 0x39, 0x56, 0xB1, 0xBE, 0xF7] ,_.GUID_MetadataFormatJpegLuminance:=[0x86908007, 0xEDFC, 0x4860, 0x8D, 0x4B, 0x4E, 0xE6, 0xE8, 0x3E, 0x60, 0x58] ,_.GUID_MetadataFormatJpegComment:=[0x220E5F33, 0xAFD3, 0x474E, 0x9D, 0x31, 0x7D, 0x4F, 0xE7, 0x30, 0xF5, 0x57] ,_.GUID_MetadataFormatGifComment:=[0xC4B6E0E0, 0xCFB4, 0x4AD3, 0xAB, 0x33, 0x9A, 0xAD, 0x23, 0x55, 0xA3, 0x4A] ,_.GUID_MetadataFormatChunkgAMA:=[0xF00935A5, 0x1D5D, 0x4CD1, 0x81, 0xB2, 0x93, 0x24, 0xD7, 0xEC, 0xA7, 0x81] ,_.GUID_MetadataFormatChunkbKGD:=[0xE14D3571, 0x6B47, 0x4DEA, 0xB6, 0xA, 0x87, 0xCE, 0xA, 0x78, 0xDF, 0xB7] ,_.GUID_MetadataFormatChunkiTXt:=[0xC2BEC729, 0xB68, 0x4B77, 0xAA, 0xE, 0x62, 0x95, 0xA6, 0xAC, 0x18, 0x14] ,_.GUID_MetadataFormatChunkcHRM:=[0x9DB3655B, 0x2842, 0x44B3, 0x80, 0x67, 0x12, 0xE9, 0xB3, 0x75, 0x55, 0x6A] ,_.GUID_MetadataFormatChunkhIST:=[0xC59A82DA, 0xDB74, 0x48A4, 0xBD, 0x6A, 0xB6, 0x9C, 0x49, 0x31, 0xEF, 0x95] ,_.GUID_MetadataFormatChunkiCCP:=[0xEB4349AB, 0xB685, 0x450F, 0x91, 0xB5, 0xE8, 0x2, 0xE8, 0x92, 0x53, 0x6C] ,_.GUID_MetadataFormatChunksRGB:=[0xC115FD36, 0xCC6F, 0x4E3F, 0x83, 0x63, 0x52, 0x4B, 0x87, 0xC6, 0xB0, 0xD9] ,_.GUID_MetadataFormatChunktIME:=[0x6B00AE2D, 0xE24B, 0x460A, 0x98, 0xB6, 0x87, 0x8B, 0xD0, 0x30, 0x72, 0xFD] ; Vendor Identification _.GUID_VendorMicrosoft:=[0x69fd0fdc, 0xa866, 0x4108, 0xb3, 0xb2, 0x98, 0x44, 0x7f, 0xa9, 0xed, 0xd4] ,_.GUID_VendorMicrosoftBuiltIn:=[0x257a30fd, 0x6b6, 0x462b, 0xae, 0xa4, 0x63, 0xf7, 0xb, 0x86, 0xe5, 0x33] ; WICBitmapPaletteType _.GUID_WICPixelFormatDontCare:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x00] ,_.GUID_WICPixelFormat1bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x01] ,_.GUID_WICPixelFormat2bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x02] ,_.GUID_WICPixelFormat4bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x03] ,_.GUID_WICPixelFormat8bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x04] ,_.GUID_WICPixelFormatBlackWhite:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x05] ,_.GUID_WICPixelFormat2bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x06] ,_.GUID_WICPixelFormat4bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x07] ,_.GUID_WICPixelFormat8bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x08] ,_.GUID_WICPixelFormat8bppAlpha:=[0xe6cd0116, 0xeeba, 0x4161, 0xaa, 0x85, 0x27, 0xdd, 0x9f, 0xb3, 0xa8, 0x95] ,_.GUID_WICPixelFormat16bppBGR555:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x09] ,_.GUID_WICPixelFormat16bppBGR565:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0a] ,_.GUID_WICPixelFormat16bppBGRA5551:=[0x05ec7c2b, 0xf1e6, 0x4961, 0xad, 0x46, 0xe1, 0xcc, 0x81, 0x0a, 0x87, 0xd2] _.GUID_WICPixelFormat16bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0b] ,_.GUID_WICPixelFormat24bppBGR:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0c] ,_.GUID_WICPixelFormat24bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0d] ,_.GUID_WICPixelFormat32bppBGR:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0e] ,_.GUID_WICPixelFormat32bppBGRA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0f] ,_.GUID_WICPixelFormat32bppPBGRA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x10] ,_.GUID_WICPixelFormat32bppGrayFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x11] ,_.GUID_WICPixelFormat32bppRGBA:=[0xf5c7ad2d, 0x6a8d, 0x43dd, 0xa7, 0xa8, 0xa2, 0x99, 0x35, 0x26, 0x1a, 0xe9] ,_.GUID_WICPixelFormat32bppPRGBA:=[0x3cc4a650, 0xa527, 0x4d37, 0xa9, 0x16, 0x31, 0x42, 0xc7, 0xeb, 0xed, 0xba] ,_.GUID_WICPixelFormat48bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x15] ,_.GUID_WICPixelFormat48bppBGR:=[0xe605a384, 0xb468, 0x46ce, 0xbb, 0x2e, 0x36, 0xf1, 0x80, 0xe6, 0x43, 0x13] ,_.GUID_WICPixelFormat64bppRGBA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x16] ,_.GUID_WICPixelFormat64bppBGRA:=[ 0x1562ff7c, 0xd352, 0x46f9, 0x97, 0x9e, 0x42, 0x97, 0x6b, 0x79, 0x22, 0x46] _.GUID_WICPixelFormat64bppPRGBA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x17] ,_.GUID_WICPixelFormat64bppPBGRA:=[0x8c518e8e, 0xa4ec, 0x468b, 0xae, 0x70, 0xc9, 0xa3, 0x5a, 0x9c, 0x55, 0x30] ,_.GUID_WICPixelFormat16bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x13] ,_.GUID_WICPixelFormat32bppBGR101010:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x14] ,_.GUID_WICPixelFormat48bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x12] ,_.GUID_WICPixelFormat48bppBGRFixedPoint:=[0x49ca140e, 0xcab6, 0x493b, 0x9d, 0xdf, 0x60, 0x18, 0x7c, 0x37, 0x53, 0x2a] ,_.GUID_WICPixelFormat96bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x18] ,_.GUID_WICPixelFormat128bppRGBAFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x19] ,_.GUID_WICPixelFormat128bppPRGBAFloat:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1a] ,_.GUID_WICPixelFormat128bppRGBFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1b] ,_.GUID_WICPixelFormat32bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1c] ,_.GUID_WICPixelFormat64bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1d] ,_.GUID_WICPixelFormat64bppBGRAFixedPoint:=[0x356de33c, 0x54d2, 0x4a23, 0xbb, 0x4, 0x9b, 0x7b, 0xf9, 0xb1, 0xd4, 0x2d] _.GUID_WICPixelFormat64bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x40] ,_.GUID_WICPixelFormat128bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1e] ,_.GUID_WICPixelFormat128bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x41] ,_.GUID_WICPixelFormat64bppRGBAHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3a] ,_.GUID_WICPixelFormat64bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x42] ,_.GUID_WICPixelFormat48bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3b] ,_.GUID_WICPixelFormat32bppRGBE:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3d] ,_.GUID_WICPixelFormat16bppGrayHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3e] ,_.GUID_WICPixelFormat32bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3f] ,_.GUID_WICPixelFormat32bppRGBA1010102:=[0x25238D72, 0xFCF9, 0x4522, 0xb5, 0x14, 0x55, 0x78, 0xe5, 0xad, 0x55, 0xe0] ,_.GUID_WICPixelFormat32bppRGBA1010102XR:=[0x00DE6B9A, 0xC101, 0x434b, 0xb5, 0x02, 0xd0, 0x16, 0x5e, 0xe1, 0x12, 0x2c] ,_.GUID_WICPixelFormat64bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1f] ,_.GUID_WICPixelFormat24bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x20] _.GUID_WICPixelFormat32bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x21] ,_.GUID_WICPixelFormat40bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x22] ,_.GUID_WICPixelFormat48bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x23] ,_.GUID_WICPixelFormat56bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x24] ,_.GUID_WICPixelFormat64bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x25] ,_.GUID_WICPixelFormat48bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x26] ,_.GUID_WICPixelFormat64bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x27] ,_.GUID_WICPixelFormat80bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x28] ,_.GUID_WICPixelFormat96bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x29] ,_.GUID_WICPixelFormat112bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2a] ,_.GUID_WICPixelFormat128bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2b] ,_.GUID_WICPixelFormat40bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2c] ,_.GUID_WICPixelFormat80bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2d] ,_.GUID_WICPixelFormat32bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2e] _.GUID_WICPixelFormat40bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2f] ,_.GUID_WICPixelFormat48bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x30] ,_.GUID_WICPixelFormat56bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x31] ,_.GUID_WICPixelFormat64bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x32] ,_.GUID_WICPixelFormat72bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x33] ,_.GUID_WICPixelFormat64bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x34] ,_.GUID_WICPixelFormat80bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x35] ,_.GUID_WICPixelFormat96bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x36] ,_.GUID_WICPixelFormat112bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x37] ,_.GUID_WICPixelFormat128bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x38] ,_.GUID_WICPixelFormat144bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x39] } if _.haskey(name){ p:=_[name] VarSetCapacity(GUID,16) ,NumPut(p.1+(p.2<<32)+(p.3<<48),GUID,0,"int64") ,NumPut(p.4+(p.5<<8)+(p.6<<16)+(p.7<<24)+(p.8<<32)+(p.9<<40)+(p.10<<48)+(p.11<<56),GUID,8,"int64") return &GUID }else return name } WIC_hr(a){ static init:=1,err:={0x8000FFFF:"Catastrophic failure error.",0x80004001:"Not implemented error.",0x8007000E:"Out of memory error.",0x80070057:"One or more arguments are not valid error.",0x80004002:"Interface not supported error.",0x80004003:"Pointer not valid error.",0x80070006:"Handle not valid error.",0x80004004:"Operation aborted error.",0x80004005:"Unspecified error.",0x80070005:"General access denied error.",0x800401E5:"The object identified by this moniker could not be found."} if init{ init:=0 err[0x80004005]:="WINCODEC_ERR_GENERIC_ERROR" ,err[0x80070057]:="WINCODEC_ERR_INVALIDPARAMETER" ,err[0x8007000E]:="WINCODEC_ERR_OUTOFMEMORY" ,err[0x80004001]:="WINCODEC_ERR_NOTIMPLEMENTED" ,err[0x80004004]:="WINCODEC_ERR_ABORTED" ,err[0x80070005]:="WINCODEC_ERR_ACCESSDENIED" ,err[0x88982f04]:="WINCODEC_ERR_WRONGSTATE" ,err[0x88982f05]:="WINCODEC_ERR_VALUEOUTOFRANGE" ,err[0x88982f07]:="WINCODEC_ERR_UNKNOWNIMAGEFORMAT" ,err[0x88982f0B]:="WINCODEC_ERR_UNSUPPORTEDVERSION" ,err[0x88982f0C]:="WINCODEC_ERR_NOTINITIALIZED" ,err[0x88982f0D]:="WINCODEC_ERR_ALREADYLOCKED" ,err[0x88982f40]:="WINCODEC_ERR_PROPERTYNOTFOUND" ,err[0x88982f41]:="WINCODEC_ERR_PROPERTYNOTSUPPORTED" ,err[0x88982f42]:="WINCODEC_ERR_PROPERTYSIZE" ,err[0x88982f43]:="WINCODEC_ERR_CODECPRESENT" ,err[0x88982f44]:="WINCODEC_ERR_CODECNOTHUMBNAIL" ,err[0x88982f45]:="WINCODEC_ERR_PALETTEUNAVAILABLE" ,err[0x88982f46]:="WINCODEC_ERR_CODECTOOMANYSCANLINES" ,err[0x88982f48]:="WINCODEC_ERR_INTERNALERROR" ,err[0x88982f49]:="WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS" ,err[0x88982f50]:="WINCODEC_ERR_COMPONENTNOTFOUND" err[0x88982f51]:="WINCODEC_ERR_IMAGESIZEOUTOFRANGE" ,err[0x88982f52]:="WINCODEC_ERR_TOOMUCHMETADATA" ,err[0x88982f60]:="WINCODEC_ERR_BADIMAGE" ,err[0x88982f61]:="WINCODEC_ERR_BADHEADER" ,err[0x88982f62]:="WINCODEC_ERR_FRAMEMISSING" ,err[0x88982f63]:="WINCODEC_ERR_BADMETADATAHEADER" ,err[0x88982f70]:="WINCODEC_ERR_BADSTREAMDATA" ,err[0x88982f71]:="WINCODEC_ERR_STREAMWRITE" ,err[0x88982f72]:="WINCODEC_ERR_STREAMREAD" ,err[0x88982f73]:="WINCODEC_ERR_STREAMNOTAVAILABLE" ,err[0x88982f80]:="WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT" ,err[0x88982f81]:="WINCODEC_ERR_UNSUPPORTEDOPERATION" ,err[0x88982f8A]:="WINCODEC_ERR_INVALIDREGISTRATION" ,err[0x88982f8B]:="WINCODEC_ERR_COMPONENTINITIALIZEFAILURE" ,err[0x88982f8C]:="WINCODEC_ERR_INSUFFICIENTBUFFER" ,err[0x88982f8D]:="WINCODEC_ERR_DUPLICATEMETADATAPRESENT" ,err[0x88982f8E]:="WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE" ,err[0x88982f8F]:="WINCODEC_ERR_UNEXPECTEDSIZE" ,err[0x88982f90]:="WINCODEC_ERR_INVALIDQUERYREQUEST" ,err[0x88982f91]:="WINCODEC_ERR_UNEXPECTEDMETADATATYPE" ,err[0x88982f92]:="WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT" ,err[0x88982f93]:="WINCODEC_ERR_INVALIDQUERYCHARACTER" } if a && (a&=0xFFFFFFFF) { if err.haskey(a) return err[a] } return a }
it works good on win10
but, is there any way to get this to work on win7?
im getting a D3D11CreateDevice error on win7. if i change the CreateDevice dllcall to return uint, and convert dec to hex, the hr error code is 0x887a0004 which google says is some directx error. i've tried updating directx on win7 with this but it still fails:
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=35
maybe because my win7 is inside a VM?
Re: Anti-cheat black screen
This error means:
I think that Your video card does not support neither D3D_FEATURE_LEVEL_11_0 nor D3D_FEATURE_LEVEL_10_1.
You can download gpu-z to check version that Your videocard supports.
https://www.techpowerup.com/gpuz/
And after that change this level to Yours
https://msdn.microsoft.com/en-us/windows/desktop/ff476329
And this line of code does nothing, therefore You can delete it
And as I see, dwmapi.dll in Windows 7 does not have named function - DwmpDxGetWindowSharedSurface, therefore You have to call it by ordinary value, that is 100.
https://www.geoffchappell.com/studies/windows/win32/dwmapi/api/index.htm
https://docs.microsoft.com/en-us/windows/win32/direct3ddxgi/dxgi-errorDXGI_ERROR_UNSUPPORTED
0x887A0004
The requested functionality is not supported by the device or the driver.
I think that Your video card does not support neither D3D_FEATURE_LEVEL_11_0 nor D3D_FEATURE_LEVEL_10_1.
You can download gpu-z to check version that Your videocard supports.
https://www.techpowerup.com/gpuz/
And after that change this level to Yours
Code: Select all
NumPut(D3D_FEATURE_LEVEL_10_1 := 0xa100, D3D_FEATURE_LEVEL, 4, "uint")
And this line of code does nothing, therefore You can delete it
Code: Select all
DwmpDxUpdateWindowSharedSurface(captureHwnd, puiUpdateId, 0, 0, 0)
https://www.geoffchappell.com/studies/windows/win32/dwmapi/api/index.htm
Re: Anti-cheat black screen
gpu-z is showing all blank.malcev wrote: ↑04 Dec 2019, 06:55This error means:https://docs.microsoft.com/en-us/windows/win32/direct3ddxgi/dxgi-errorDXGI_ERROR_UNSUPPORTED
0x887A0004
The requested functionality is not supported by the device or the driver.
I think that Your video card does not support neither D3D_FEATURE_LEVEL_11_0 nor D3D_FEATURE_LEVEL_10_1.
You can download gpu-z to check version that Your videocard supports.
https://www.techpowerup.com/gpuz/
i'm running win7 inside VirtualBox, so that's probably the problem. this link says that VirtualBox only supports Direct3d 8/9
i tested with my user and we did get past the CreateDevice which means that win7 does work with d3d11. so it must be my machine
i tried changing to feature level 9.1, 9.2, 9.3, and now i get a different error for CreateDevice:malcev wrote: ↑04 Dec 2019, 06:55And after that change this level to Yourshttps://msdn.microsoft.com/en-us/windows/desktop/ff476329Code: Select all
NumPut(D3D_FEATURE_LEVEL_10_1 := 0xa100, D3D_FEATURE_LEVEL, 4, "uint")
ErrorLevel=0x80000003
hr=0
A_lastError=0
thanks, i removed that, and it worked on my win10 machinemalcev wrote: ↑04 Dec 2019, 06:55And this line of code does nothing, therefore You can delete itCode: Select all
DwmpDxUpdateWindowSharedSurface(captureHwnd, puiUpdateId, 0, 0, 0)
i dont know how to call a function by ordinary value, can you show me an example?malcev wrote: ↑04 Dec 2019, 06:55And as I see, dwmapi.dll in Windows 7 does not have named function - DwmpDxGetWindowSharedSurface, therefore You have to call it by ordinary value, that is 100.
https://www.geoffchappell.com/studies/windows/win32/dwmapi/api/index.htm
that chart in the link says that everything should work on win 7 (version 6.1), but you are right, i tried it with one of my users and they got ErrorLevel -4 (The specified function could not be found inside the DLL).
EDIT:
this works to call the func by ordinal value:
Code: Select all
DwmpDxGetWindowSharedSurfaceAddr := DllCall("GetProcAddress", Ptr, DllCall("GetModuleHandle", "Str", "dwmapi", Ptr), "UInt", 100, Ptr)
hr := DllCall(DwmpDxGetWindowSharedSurfaceAddr, ptr, hwnd......)
Re: Anti-cheat black screen
Sorry, I do not have VirtualBox to test.
But You can test second example in this post:
https://www.autohotkey.com/boards/viewtopic.php?p=295546#p295546
If it works then, I think, there is a chance that we can get dwm shared surface with directx9 help.
But You can test second example in this post:
https://www.autohotkey.com/boards/viewtopic.php?p=295546#p295546
If it works then, I think, there is a chance that we can get dwm shared surface with directx9 help.
Re: Anti-cheat black screen
that example works on win10malcev wrote: ↑06 Dec 2019, 02:33But You can test second example in this post:
https://www.autohotkey.com/boards/viewtopic.php?p=295546#p295546
If it works then, I think, there is a chance that we can get dwm shared surface with directx9 help.
on win7 vm, it gets past the directx stuff, which is good i think, but then i get an error during WritePixels. again, changing return value to uint, and dectohex, then i get 0x80070057, which i found on this link as "WINCODEC_ERR_INVALIDPARAMETER"
Re: Anti-cheat black screen
I added check for ErrorLevel in Directx functions.
Will it work if You convert image:?
Will it work if You convert image:?
Code: Select all
;
; Script Requirements:
;
; DirectX - March 2008 or later. (d3dx9_37.dll)
; DirectX End-User Runtime Web Installer (March 2008):
; http://www.microsoft.com/downloads/details.aspx?FamilyId=2DA43D38-DB71-4C1B-BC6A-9B6652CD92A3&displaylang=en
;
file := "file.bmp" ; can be: png, bmp, jpg, tiff, gif
setbatchlines -1
formatGuid := WIC_GUID(GUID, "GUID_WICPixelFormat32bppBGRA")
Extension := RegexReplace(file, "^.+\.")
if (Extension = "png")
ContainerFormat := "GUID_ContainerFormatPng"
else if (Extension = "bmp")
ContainerFormat := "GUID_ContainerFormatBmp"
else if (Extension = "jpg")
ContainerFormat := "GUID_ContainerFormatJpeg"
else if (Extension = "tiff")
ContainerFormat := "GUID_ContainerFormatTiff"
else if (Extension = "gif")
ContainerFormat := "GUID_ContainerFormatGif"
else
{
msgbox extension %Extension% cannot use
ExitApp
}
; init D3D and get screen size
d3d := Direct3DCreate9(D3D_SDK_VERSION := 32)
if !d3d
{
MsgBox, 16, Error, Direct3DCreate9 failed.
ExitApp
}
VarSetCapacity(D3DDISPLAYMODE, 16, 0)
IDirect3D9_GetAdapterDisplayMode(d3d, D3DADAPTER_DEFAULT := 0, &D3DDISPLAYMODE)
Windowed := true
BackBufferCount := 1
Height := NumGet(D3DDISPLAYMODE, 4, "uint")
Width := NumGet(D3DDISPLAYMODE, 0, "uint")
SwapEffect := 1 ; D3DSWAPEFFECT_DISCARD
hDeviceWindow := 0
; create device & capture surface
VarSetCapacity(D3DPRESENT_PARAMETERS, 48+2*A_PtrSize, 0)
NumPut(Width, D3DPRESENT_PARAMETERS, 0)
NumPut(Height, D3DPRESENT_PARAMETERS, 4)
NumPut(BackBufferCount, D3DPRESENT_PARAMETERS, 12)
NumPut(SwapEffect, D3DPRESENT_PARAMETERS, 24)
NumPut(hDeviceWindow, D3DPRESENT_PARAMETERS, 24+A_PtrSize)
NumPut(Windowed, D3DPRESENT_PARAMETERS, 24+2*A_PtrSize)
IDirect3D9_CreateDevice(d3d, D3DADAPTER_DEFAULT := 0, D3DDEVTYPE_HAL := 1, 0, D3DCREATE_SOFTWARE_VERTEXPROCESSING := 0x00000020, &D3DPRESENT_PARAMETERS, device)
IDirect3DDevice9_CreateOffscreenPlainSurface(device, Width, Height, D3DFMT_A8R8G8B8 := 21, D3DPOOL_SYSTEMMEM := 2, surface, 0)
; get the data
IDirect3DDevice9_GetFrontBufferData(device, 0, surface)
; copy it into our buffers
VarSetCapacity(D3DLOCKED_RECT, A_PtrSize*2, 0)
IDirect3DSurface9_LockRect(surface, &D3DLOCKED_RECT, 0, 0)
pitch := NumGet(D3DLOCKED_RECT, 0, "int")
pBits := NumGet(D3DLOCKED_RECT, A_PtrSize, "ptr")
if !wic
wic := IWICCreate()
IWICImagingFactory_CreateStream(wic, stream)
IWICStream_InitializeFromFilename(stream, file, GENERIC_WRITE := 0x40000000)
IWICImagingFactory_CreateEncoder(wic, ContainerFormat, 0, encoder)
IWICBitmapEncoder_Initialize(encoder, stream, WICBitmapEncoderNoCache := 0x2)
IWICBitmapEncoder_CreateNewFrame(encoder, frame)
IWICBitmapFrameEncode_Initialize(frame)
IWICBitmapFrameEncode_SetSize(frame, width, height)
IWICImagingFactory_CreateFormatConverter(wic, FormatConverter)
IWICImagingFactory_CreateBitmapFromMemory(wic, width, height, formatGuid, pitch, pitch * height, pBits, Bitmap)
IWICFormatConverter_Initialize(FormatConverter, Bitmap, "GUID_WICPixelFormat24bppBGR", WICBitmapDitherTypeNone := 0, 0, 0, WICBitmapPaletteTypeMedianCut := 0x1)
IWICBitmapFrameEncode_SetPixelFormat(frame, formatGuid)
VarSetCapacity(Rect, 16, 0)
NumPut(width, Rect, 8, "int")
NumPut(height, Rect, 12, "int")
IWICBitmapFrameEncode_WriteSource(frame, FormatConverter, &Rect)
Release(FormatConverter)
Release(Bitmap)
FormatConverter := Bitmap := ""
IWICBitmapFrameEncode_Commit(frame)
IWICBitmapEncoder_Commit(encoder)
Release(stream)
Release(frame)
Release(encoder)
stream := frame := encoder := ""
IDirect3DSurface9_UnlockRect(surface)
Release(surface)
Release(device)
Release(d3d)
msgbox done
return
Direct3DCreate9(SDKVersion) {
if !DllCall("GetModuleHandle","str","d3d9")
DllCall("LoadLibrary","str","d3d9")
return DllCall("d3d9\Direct3DCreate9", "uint", SDKVersion)
}
IDirect3D9_GetAdapterDisplayMode(this,Adapter,pMode)
{
hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize),"ptr",this,"uint",Adapter,"ptr",pMode)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3D9_CreateDevice(this,Adapter,DeviceType,hFocusWindow,BehaviorFlags,pPresentationParameters,ByRef ppReturnedDeviceInterface)
{
hr := DllCall(NumGet(NumGet(this+0)+16*A_PtrSize),"ptr",this,"uint",Adapter,"uint",DeviceType,"ptr",hFocusWindow,"uint",BehaviorFlags,"ptr",pPresentationParameters,"ptr*",ppReturnedDeviceInterface)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3DDevice9_GetFrontBufferData(this,iSwapChain,pDestSurface)
{
hr := DllCall(NumGet(NumGet(this+0)+33*A_PtrSize),"ptr",this,"uint",iSwapChain,"ptr",pDestSurface)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3DDevice9_CreateOffscreenPlainSurface(this,Width,Height,Format,Pool,ByRef ppSurface,pSharedHandle)
{
hr := DllCall(NumGet(NumGet(this+0)+36*A_PtrSize),"ptr",this,"uint",Width,"uint",Height,"uint",Format,"uint",Pool,"ptr*",ppSurface,"ptr",pSharedHandle)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3DSurface9_LockRect(this,pLockedRect,pRect,Flags)
{
hr := DllCall(NumGet(NumGet(this+0)+13*A_PtrSize),"ptr",this,"ptr",pLockedRect,"ptr",pRect,"uint",Flags)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3DSurface9_UnlockRect(this)
{
hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize),"ptr",this)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
Release(this) { ; COM_Release. So far the only required COM_* function...
return DllCall(NumGet(NumGet(this+0)+2*A_PtrSize), "ptr", this)
}
_Error(val)
{
msgbox % val
ExitApp
}
IWICCreate()
{
return ComObjCreate("{cacaf262-9370-4615-a13b-9f5539da4c0a}", "{ec5ec8a9-c395-4314-9c77-54d7a935ff70}")
}
IWICImagingFactory_CreateStream(this, ByRef ppIWICStream)
{
hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize), "ptr", this, "ptr*", ppIWICStream)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICImagingFactory_CreateFormatConverter(this, ByRef ppIFormatConverter)
{
hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFormatConverter)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICStream_InitializeFromFilename(this, wzFileName, dwDesiredAccess)
{
hr := DllCall(NumGet(NumGet(this+0)+15*A_PtrSize), "ptr", this, "str", wzFileName, "uint", dwDesiredAccess)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICImagingFactory_CreateEncoder(this, guidContainerFormat, pguidVendor, ByRef ppIEncoder)
{
hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", WIC_GUID(GUID1, guidContainerFormat), "ptr", WIC_GUID(GUID2, pguidVendor), "ptr*", ppIEncoder)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapEncoder_Initialize(this, pIStream, cacheOption)
{
hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIStream, "int", cacheOption)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapEncoder_CreateNewFrame(this, ByRef ppIFrameEncode, ppIEncoderOptions := 0)
{
hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFrameEncode, "ptr*", ppIEncoderOptions)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapEncoder_Commit(this)
{
hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_Initialize(this, pIEncoderOptions := 0)
{
hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIEncoderOptions)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_SetSize(this, uiWidth, uiHeight)
{
hr := DllCall(NumGet(NumGet(this+0)+4*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_WritePixels(this, lineCount, cbStride, cbBufferSize, pbPixels)
{
hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "uint", lineCount, "uint", cbStride, "uint", cbBufferSize, "ptr", pbPixels)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_Commit(this)
{
hr := DllCall(NumGet(NumGet(this+0)+12*A_PtrSize), "ptr", this)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_WriteSource(this, pIBitmapSource, prc)
{
hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this, "ptr", pIBitmapSource, "ptr", prc)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICImagingFactory_CreateBitmapFromMemory(this, uiWidth, uiHeight, pixelFormat, cbStride, cbBufferSize, pbBuffer, ByRef ppIBitmap)
{
hr := DllCall(NumGet(NumGet(this+0)+20*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight, "ptr", pixelFormat, "uint", cbStride, "uint", cbBufferSize, "ptr", pbBuffer, "ptr*", ppIBitmap)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICFormatConverter_Initialize(this, pISource, dstFormat, dither, pIPalette, alphaThresholdPercent, paletteTranslate)
{
dstFormat := WIC_GUID(GUID, dstFormat)
hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", pISource, "ptr", dstFormat, "uint", dither, "ptr", pIPalette, "double", alphaThresholdPercent, "uint", alphaThresholdPercent)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICFormatConverter_CanConvert(this, srcPixelFormat, dstPixelFormat)
{
hr := DllCall(NumGet(NumGet(this+0)+9*A_PtrSize), "ptr", this, "ptr", srcPixelFormat, "ptr", dstPixelFormat, "ptr*", pfCanConvert)
if hr or ErrorLevel or !pfCanConvert
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel "`npfCanConvert=0")
}
IWICBitmapFrameEncode_SetPixelFormat(this, ByRef pPixelFormat)
{
hr := DllCall(NumGet(NumGet(this+0)+6*A_PtrSize), "ptr", this, "ptr*", pPixelFormat)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
WIC_GUID(ByRef GUID,name){
static init:=1,_:={}
if init {
init:=0
; Decoders
_.CLSID_WICBmpDecoder:=[0x6b462062, 0x7cbf, 0x400d, 0x9f, 0xdb, 0x81, 0x3d, 0xd1, 0xf, 0x27, 0x78]
,_.CLSID_WICPngDecoder:=[0x389ea17b, 0x5078, 0x4cde, 0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51]
,_.CLSID_WICIcoDecoder:=[0xc61bfcdf, 0x2e0f, 0x4aad, 0xa8, 0xd7, 0xe0, 0x6b, 0xaf, 0xeb, 0xcd, 0xfe]
,_.CLSID_WICJpegDecoder:=[0x9456a480, 0xe88b, 0x43ea, 0x9e, 0x73, 0xb, 0x2d, 0x9b, 0x71, 0xb1, 0xca]
,_.CLSID_WICGifDecoder:=[0x381dda3c, 0x9ce9, 0x4834, 0xa2, 0x3e, 0x1f, 0x98, 0xf8, 0xfc, 0x52, 0xbe]
,_.CLSID_WICTiffDecoder:=[0xb54e85d9, 0xfe23, 0x499f, 0x8b, 0x88, 0x6a, 0xce, 0xa7, 0x13, 0x75, 0x2b]
,_.CLSID_WICWmpDecoder:=[0xa26cec36, 0x234c, 0x4950, 0xae, 0x16, 0xe3, 0x4a, 0xac, 0xe7, 0x1d, 0x0d]
; Encoders
_.CLSID_WICBmpEncoder:=[0x69be8bb4, 0xd66d, 0x47c8, 0x86, 0x5a, 0xed, 0x15, 0x89, 0x43, 0x37, 0x82]
,_.CLSID_WICPngEncoder:=[0x27949969, 0x876a, 0x41d7, 0x94, 0x47, 0x56, 0x8f, 0x6a, 0x35, 0xa4, 0xdc]
,_.CLSID_WICJpegEncoder:=[0x1a34f5c1, 0x4a5a, 0x46dc, 0xb6, 0x44, 0x1f, 0x45, 0x67, 0xe7, 0xa6, 0x76]
,_.CLSID_WICGifEncoder:=[0x114f5598, 0xb22, 0x40a0, 0x86, 0xa1, 0xc8, 0x3e, 0xa4, 0x95, 0xad, 0xbd]
,_.CLSID_WICTiffEncoder:=[0x0131be10, 0x2001, 0x4c5f, 0xa9, 0xb0, 0xcc, 0x88, 0xfa, 0xb6, 0x4c, 0xe8]
,_.CLSID_WICWmpEncoder:=[0xac4ce3cb, 0xe1c1, 0x44cd, 0x82, 0x15, 0x5a, 0x16, 0x65, 0x50, 0x9e, 0xc2]
; Container Formats
_.GUID_ContainerFormatBmp:=[0xaf1d87e, 0xfcfe, 0x4188, 0xbd, 0xeb, 0xa7, 0x90, 0x64, 0x71, 0xcb, 0xe3]
,_.GUID_ContainerFormatPng:=[0x1b7cfaf4, 0x713f, 0x473c, 0xbb, 0xcd, 0x61, 0x37, 0x42, 0x5f, 0xae, 0xaf]
,_.GUID_ContainerFormatIco:=[0xa3a860c4, 0x338f, 0x4c17, 0x91, 0x9a, 0xfb, 0xa4, 0xb5, 0x62, 0x8f, 0x21]
,_.GUID_ContainerFormatJpeg:=[0x19e4a5aa, 0x5662, 0x4fc5, 0xa0, 0xc0, 0x17, 0x58, 0x2, 0x8e, 0x10, 0x57]
,_.GUID_ContainerFormatTiff:=[0x163bcc30, 0xe2e9, 0x4f0b, 0x96, 0x1d, 0xa3, 0xe9, 0xfd, 0xb7, 0x88, 0xa3]
,_.GUID_ContainerFormatGif:=[0x1f8a5601, 0x7d4d, 0x4cbd, 0x9c, 0x82, 0x1b, 0xc8, 0xd4, 0xee, 0xb9, 0xa5]
,_.GUID_ContainerFormatWmp:=[0x57a37caa, 0x367a, 0x4540, 0x91, 0x6b, 0xf1, 0x83, 0xc5, 0x09, 0x3a, 0x4b]
; Component Identifiers
_.CLSID_WICImagingCategories:=[0xfae3d380, 0xfea4, 0x4623, 0x8c, 0x75, 0xc6, 0xb6, 0x11, 0x10, 0xb6, 0x81]
,_.CATID_WICBitmapDecoders:=[0x7ed96837, 0x96f0, 0x4812, 0xb2, 0x11, 0xf1, 0x3c, 0x24, 0x11, 0x7e, 0xd3]
,_.CATID_WICBitmapEncoders:=[0xac757296, 0x3522, 0x4e11, 0x98, 0x62, 0xc1, 0x7b, 0xe5, 0xa1, 0x76, 0x7e]
,_.CATID_WICPixelFormats:=[0x2b46e70f, 0xcda7, 0x473e, 0x89, 0xf6, 0xdc, 0x96, 0x30, 0xa2, 0x39, 0x0b]
,_.CATID_WICFormatConverters:=[0x7835eae8, 0xbf14, 0x49d1, 0x93, 0xce, 0x53, 0x3a, 0x40, 0x7b, 0x22, 0x48]
,_.CATID_WICMetadataReader:=[0x05af94d8, 0x7174, 0x4cd2, 0xbe, 0x4a, 0x41, 0x24, 0xb8, 0x0e, 0xe4, 0xb8]
,_.CATID_WICMetadataWriter:=[0xabe3b9a4, 0x257d, 0x4b97, 0xbd, 0x1a, 0x29, 0x4a, 0xf4, 0x96, 0x22, 0x2e]
; Format Converters
_.CLSID_WICDefaultFormatConverter:=[0x1a3f11dc, 0xb514, 0x4b17, 0x8c, 0x5f, 0x21, 0x54, 0x51, 0x38, 0x52, 0xf1]
,_.CLSID_WICFormatConverterHighColor:=[0xac75d454, 0x9f37, 0x48f8, 0xb9, 0x72, 0x4e, 0x19, 0xbc, 0x85, 0x60, 0x11]
,_.CLSID_WICFormatConverterNChannel:=[0xc17cabb2, 0xd4a3, 0x47d7, 0xa5, 0x57, 0x33, 0x9b, 0x2e, 0xfb, 0xd4, 0xf1]
,_.CLSID_WICFormatConverterWMPhoto:=[0x9cb5172b, 0xd600, 0x46ba, 0xab, 0x77, 0x77, 0xbb, 0x7e, 0x3a, 0x00, 0xd9]
; Metadata Handlers
_.GUID_MetadataFormatUnknown:=[0xA45E592F, 0x9078, 0x4A7C, 0xAD, 0xB5, 0x4E, 0xDC, 0x4F, 0xD6, 0x1B, 0x1F]
,_.GUID_MetadataFormatIfd:=[0x537396C6, 0x2D8A, 0x4BB6, 0x9B, 0xF8, 0x2F, 0x0A, 0x8E, 0x2A, 0x3A, 0xDF]
,_.GUID_MetadataFormatSubIfd:=[0x58A2E128, 0x2DB9, 0x4E57, 0xBB, 0x14, 0x51, 0x77, 0x89, 0x1E, 0xD3, 0x31]
,_.GUID_MetadataFormatExif:=[0x1C3C4F9D, 0xB84A, 0x467D, 0x94, 0x93, 0x36, 0xCF, 0xBD, 0x59, 0xEA, 0x57]
,_.GUID_MetadataFormatGps:=[0x7134AB8A, 0x9351, 0x44AD, 0xAF, 0x62, 0x44, 0x8D, 0xB6, 0xB5, 0x02, 0xEC]
,_.GUID_MetadataFormatInterop:=[0xED686F8E, 0x681F, 0x4C8B, 0xBD, 0x41, 0xA8, 0xAD, 0xDB, 0xF6, 0xB3, 0xFC]
,_.GUID_MetadataFormatApp0:=[0x79007028, 0x268D, 0x45d6, 0xA3, 0xC2, 0x35, 0x4E, 0x6A, 0x50, 0x4B, 0xC9]
,_.GUID_MetadataFormatApp1:=[0x8FD3DFC3, 0xF951, 0x492B, 0x81, 0x7F, 0x69, 0xC2, 0xE6, 0xD9, 0xA5, 0xB0]
,_.GUID_MetadataFormatApp13:=[0x326556A2, 0xF502, 0x4354, 0x9C, 0xC0, 0x8E, 0x3F, 0x48, 0xEA, 0xF6, 0xB5]
,_.GUID_MetadataFormatIPTC:=[0x4FAB0914, 0xE129, 0x4087, 0xA1, 0xD1, 0xBC, 0x81, 0x2D, 0x45, 0xA7, 0xB5]
,_.GUID_MetadataFormatIRB:=[0x16100D66, 0x8570, 0x4BB9, 0xB9, 0x2D, 0xFD, 0xA4, 0xB2, 0x3E, 0xCE, 0x67]
,_.GUID_MetadataFormat8BIMIPTC:=[0x0010568c, 0x0852, 0x4e6a, 0xb1, 0x91, 0x5c, 0x33, 0xac, 0x5b, 0x04, 0x30]
,_.GUID_MetadataFormat8BIMResolutionInfo:=[0x739F305D, 0x81DB, 0x43CB, 0xAC, 0x5E, 0x55, 0x01, 0x3E, 0xF9, 0xF0, 0x03]
_.GUID_MetadataFormat8BIMIPTCDigest:=[0x1CA32285, 0x9CCD, 0x4786, 0x8B, 0xD8, 0x79, 0x53, 0x9D, 0xB6, 0xA0, 0x06]
,_.GUID_MetadataFormatXMP:=[0xBB5ACC38, 0xF216, 0x4CEC, 0xA6, 0xC5, 0x5F, 0x6E, 0x73, 0x97, 0x63, 0xA9]
,_.GUID_MetadataFormatThumbnail:=[0x243dcee9, 0x8703, 0x40ee, 0x8e, 0xf0, 0x22, 0xa6, 0x0, 0xb8, 0x5, 0x8c]
,_.GUID_MetadataFormatChunktEXt:=[0x568d8936, 0xc0a9, 0x4923, 0x90, 0x5d, 0xdf, 0x2b, 0x38, 0x23, 0x8f, 0xbc]
,_.GUID_MetadataFormatXMPStruct:=[0x22383CF1, 0xED17, 0x4E2E, 0xAF, 0x17, 0xD8, 0x5B, 0x8F, 0x6B, 0x30, 0xD0]
,_.GUID_MetadataFormatXMPBag:=[0x833CCA5F, 0xDCB7, 0x4516, 0x80, 0x6F, 0x65, 0x96, 0xAB, 0x26, 0xDC, 0xE4]
,_.GUID_MetadataFormatXMPSeq:=[0x63E8DF02, 0xEB6C,0x456C, 0xA2, 0x24, 0xB2, 0x5E, 0x79, 0x4F, 0xD6, 0x48]
,_.GUID_MetadataFormatXMPAlt:=[0x7B08A675, 0x91AA, 0x481B, 0xA7, 0x98, 0x4D, 0xA9, 0x49, 0x08, 0x61, 0x3B]
,_.GUID_MetadataFormatLSD:=[0xE256031E, 0x6299, 0x4929, 0xB9, 0x8D, 0x5A, 0xC8, 0x84, 0xAF, 0xBA, 0x92]
,_.GUID_MetadataFormatIMD:=[0xBD2BB086, 0x4D52, 0x48DD, 0x96, 0x77, 0xDB, 0x48, 0x3E, 0x85, 0xAE, 0x8F]
,_.GUID_MetadataFormatGCE:=[0x2A25CAD8, 0xDEEB, 0x4C69, 0xA7, 0x88, 0xE, 0xC2, 0x26, 0x6D, 0xCA, 0xFD]
,_.GUID_MetadataFormatAPE:=[0x2E043DC2, 0xC967, 0x4E05, 0x87, 0x5E, 0x61, 0x8B, 0xF6, 0x7E, 0x85, 0xC3]
_.GUID_MetadataFormatJpegChrominance:=[0xF73D0DCF, 0xCEC6, 0x4F85, 0x9B, 0x0E, 0x1C, 0x39, 0x56, 0xB1, 0xBE, 0xF7]
,_.GUID_MetadataFormatJpegLuminance:=[0x86908007, 0xEDFC, 0x4860, 0x8D, 0x4B, 0x4E, 0xE6, 0xE8, 0x3E, 0x60, 0x58]
,_.GUID_MetadataFormatJpegComment:=[0x220E5F33, 0xAFD3, 0x474E, 0x9D, 0x31, 0x7D, 0x4F, 0xE7, 0x30, 0xF5, 0x57]
,_.GUID_MetadataFormatGifComment:=[0xC4B6E0E0, 0xCFB4, 0x4AD3, 0xAB, 0x33, 0x9A, 0xAD, 0x23, 0x55, 0xA3, 0x4A]
,_.GUID_MetadataFormatChunkgAMA:=[0xF00935A5, 0x1D5D, 0x4CD1, 0x81, 0xB2, 0x93, 0x24, 0xD7, 0xEC, 0xA7, 0x81]
,_.GUID_MetadataFormatChunkbKGD:=[0xE14D3571, 0x6B47, 0x4DEA, 0xB6, 0xA, 0x87, 0xCE, 0xA, 0x78, 0xDF, 0xB7]
,_.GUID_MetadataFormatChunkiTXt:=[0xC2BEC729, 0xB68, 0x4B77, 0xAA, 0xE, 0x62, 0x95, 0xA6, 0xAC, 0x18, 0x14]
,_.GUID_MetadataFormatChunkcHRM:=[0x9DB3655B, 0x2842, 0x44B3, 0x80, 0x67, 0x12, 0xE9, 0xB3, 0x75, 0x55, 0x6A]
,_.GUID_MetadataFormatChunkhIST:=[0xC59A82DA, 0xDB74, 0x48A4, 0xBD, 0x6A, 0xB6, 0x9C, 0x49, 0x31, 0xEF, 0x95]
,_.GUID_MetadataFormatChunkiCCP:=[0xEB4349AB, 0xB685, 0x450F, 0x91, 0xB5, 0xE8, 0x2, 0xE8, 0x92, 0x53, 0x6C]
,_.GUID_MetadataFormatChunksRGB:=[0xC115FD36, 0xCC6F, 0x4E3F, 0x83, 0x63, 0x52, 0x4B, 0x87, 0xC6, 0xB0, 0xD9]
,_.GUID_MetadataFormatChunktIME:=[0x6B00AE2D, 0xE24B, 0x460A, 0x98, 0xB6, 0x87, 0x8B, 0xD0, 0x30, 0x72, 0xFD]
; Vendor Identification
_.GUID_VendorMicrosoft:=[0x69fd0fdc, 0xa866, 0x4108, 0xb3, 0xb2, 0x98, 0x44, 0x7f, 0xa9, 0xed, 0xd4]
,_.GUID_VendorMicrosoftBuiltIn:=[0x257a30fd, 0x6b6, 0x462b, 0xae, 0xa4, 0x63, 0xf7, 0xb, 0x86, 0xe5, 0x33]
; WICBitmapPaletteType
_.GUID_WICPixelFormatDontCare:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x00]
,_.GUID_WICPixelFormat1bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x01]
,_.GUID_WICPixelFormat2bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x02]
,_.GUID_WICPixelFormat4bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x03]
,_.GUID_WICPixelFormat8bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x04]
,_.GUID_WICPixelFormatBlackWhite:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x05]
,_.GUID_WICPixelFormat2bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x06]
,_.GUID_WICPixelFormat4bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x07]
,_.GUID_WICPixelFormat8bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x08]
,_.GUID_WICPixelFormat8bppAlpha:=[0xe6cd0116, 0xeeba, 0x4161, 0xaa, 0x85, 0x27, 0xdd, 0x9f, 0xb3, 0xa8, 0x95]
,_.GUID_WICPixelFormat16bppBGR555:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x09]
,_.GUID_WICPixelFormat16bppBGR565:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0a]
,_.GUID_WICPixelFormat16bppBGRA5551:=[0x05ec7c2b, 0xf1e6, 0x4961, 0xad, 0x46, 0xe1, 0xcc, 0x81, 0x0a, 0x87, 0xd2]
_.GUID_WICPixelFormat16bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0b]
,_.GUID_WICPixelFormat24bppBGR:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0c]
,_.GUID_WICPixelFormat24bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0d]
,_.GUID_WICPixelFormat32bppBGR:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0e]
,_.GUID_WICPixelFormat32bppBGRA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0f]
,_.GUID_WICPixelFormat32bppPBGRA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x10]
,_.GUID_WICPixelFormat32bppGrayFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x11]
,_.GUID_WICPixelFormat32bppRGBA:=[0xf5c7ad2d, 0x6a8d, 0x43dd, 0xa7, 0xa8, 0xa2, 0x99, 0x35, 0x26, 0x1a, 0xe9]
,_.GUID_WICPixelFormat32bppPRGBA:=[0x3cc4a650, 0xa527, 0x4d37, 0xa9, 0x16, 0x31, 0x42, 0xc7, 0xeb, 0xed, 0xba]
,_.GUID_WICPixelFormat48bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x15]
,_.GUID_WICPixelFormat48bppBGR:=[0xe605a384, 0xb468, 0x46ce, 0xbb, 0x2e, 0x36, 0xf1, 0x80, 0xe6, 0x43, 0x13]
,_.GUID_WICPixelFormat64bppRGBA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x16]
,_.GUID_WICPixelFormat64bppBGRA:=[ 0x1562ff7c, 0xd352, 0x46f9, 0x97, 0x9e, 0x42, 0x97, 0x6b, 0x79, 0x22, 0x46]
_.GUID_WICPixelFormat64bppPRGBA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x17]
,_.GUID_WICPixelFormat64bppPBGRA:=[0x8c518e8e, 0xa4ec, 0x468b, 0xae, 0x70, 0xc9, 0xa3, 0x5a, 0x9c, 0x55, 0x30]
,_.GUID_WICPixelFormat16bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x13]
,_.GUID_WICPixelFormat32bppBGR101010:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x14]
,_.GUID_WICPixelFormat48bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x12]
,_.GUID_WICPixelFormat48bppBGRFixedPoint:=[0x49ca140e, 0xcab6, 0x493b, 0x9d, 0xdf, 0x60, 0x18, 0x7c, 0x37, 0x53, 0x2a]
,_.GUID_WICPixelFormat96bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x18]
,_.GUID_WICPixelFormat128bppRGBAFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x19]
,_.GUID_WICPixelFormat128bppPRGBAFloat:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1a]
,_.GUID_WICPixelFormat128bppRGBFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1b]
,_.GUID_WICPixelFormat32bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1c]
,_.GUID_WICPixelFormat64bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1d]
,_.GUID_WICPixelFormat64bppBGRAFixedPoint:=[0x356de33c, 0x54d2, 0x4a23, 0xbb, 0x4, 0x9b, 0x7b, 0xf9, 0xb1, 0xd4, 0x2d]
_.GUID_WICPixelFormat64bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x40]
,_.GUID_WICPixelFormat128bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1e]
,_.GUID_WICPixelFormat128bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x41]
,_.GUID_WICPixelFormat64bppRGBAHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3a]
,_.GUID_WICPixelFormat64bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x42]
,_.GUID_WICPixelFormat48bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3b]
,_.GUID_WICPixelFormat32bppRGBE:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3d]
,_.GUID_WICPixelFormat16bppGrayHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3e]
,_.GUID_WICPixelFormat32bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3f]
,_.GUID_WICPixelFormat32bppRGBA1010102:=[0x25238D72, 0xFCF9, 0x4522, 0xb5, 0x14, 0x55, 0x78, 0xe5, 0xad, 0x55, 0xe0]
,_.GUID_WICPixelFormat32bppRGBA1010102XR:=[0x00DE6B9A, 0xC101, 0x434b, 0xb5, 0x02, 0xd0, 0x16, 0x5e, 0xe1, 0x12, 0x2c]
,_.GUID_WICPixelFormat64bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1f]
,_.GUID_WICPixelFormat24bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x20]
_.GUID_WICPixelFormat32bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x21]
,_.GUID_WICPixelFormat40bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x22]
,_.GUID_WICPixelFormat48bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x23]
,_.GUID_WICPixelFormat56bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x24]
,_.GUID_WICPixelFormat64bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x25]
,_.GUID_WICPixelFormat48bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x26]
,_.GUID_WICPixelFormat64bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x27]
,_.GUID_WICPixelFormat80bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x28]
,_.GUID_WICPixelFormat96bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x29]
,_.GUID_WICPixelFormat112bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2a]
,_.GUID_WICPixelFormat128bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2b]
,_.GUID_WICPixelFormat40bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2c]
,_.GUID_WICPixelFormat80bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2d]
,_.GUID_WICPixelFormat32bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2e]
_.GUID_WICPixelFormat40bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2f]
,_.GUID_WICPixelFormat48bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x30]
,_.GUID_WICPixelFormat56bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x31]
,_.GUID_WICPixelFormat64bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x32]
,_.GUID_WICPixelFormat72bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x33]
,_.GUID_WICPixelFormat64bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x34]
,_.GUID_WICPixelFormat80bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x35]
,_.GUID_WICPixelFormat96bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x36]
,_.GUID_WICPixelFormat112bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x37]
,_.GUID_WICPixelFormat128bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x38]
,_.GUID_WICPixelFormat144bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x39]
}
if _.haskey(name){
p:=_[name]
VarSetCapacity(GUID,16)
,NumPut(p.1+(p.2<<32)+(p.3<<48),GUID,0,"int64")
,NumPut(p.4+(p.5<<8)+(p.6<<16)+(p.7<<24)+(p.8<<32)+(p.9<<40)+(p.10<<48)+(p.11<<56),GUID,8,"int64")
return &GUID
}else return name
}
WIC_hr(a){
static init:=1,err:={0x8000FFFF:"Catastrophic failure error.",0x80004001:"Not implemented error.",0x8007000E:"Out of memory error.",0x80070057:"One or more arguments are not valid error.",0x80004002:"Interface not supported error.",0x80004003:"Pointer not valid error.",0x80070006:"Handle not valid error.",0x80004004:"Operation aborted error.",0x80004005:"Unspecified error.",0x80070005:"General access denied error.",0x800401E5:"The object identified by this moniker could not be found."}
if init{
init:=0
err[0x80004005]:="WINCODEC_ERR_GENERIC_ERROR"
,err[0x80070057]:="WINCODEC_ERR_INVALIDPARAMETER"
,err[0x8007000E]:="WINCODEC_ERR_OUTOFMEMORY"
,err[0x80004001]:="WINCODEC_ERR_NOTIMPLEMENTED"
,err[0x80004004]:="WINCODEC_ERR_ABORTED"
,err[0x80070005]:="WINCODEC_ERR_ACCESSDENIED"
,err[0x88982f04]:="WINCODEC_ERR_WRONGSTATE"
,err[0x88982f05]:="WINCODEC_ERR_VALUEOUTOFRANGE"
,err[0x88982f07]:="WINCODEC_ERR_UNKNOWNIMAGEFORMAT"
,err[0x88982f0B]:="WINCODEC_ERR_UNSUPPORTEDVERSION"
,err[0x88982f0C]:="WINCODEC_ERR_NOTINITIALIZED"
,err[0x88982f0D]:="WINCODEC_ERR_ALREADYLOCKED"
,err[0x88982f40]:="WINCODEC_ERR_PROPERTYNOTFOUND"
,err[0x88982f41]:="WINCODEC_ERR_PROPERTYNOTSUPPORTED"
,err[0x88982f42]:="WINCODEC_ERR_PROPERTYSIZE"
,err[0x88982f43]:="WINCODEC_ERR_CODECPRESENT"
,err[0x88982f44]:="WINCODEC_ERR_CODECNOTHUMBNAIL"
,err[0x88982f45]:="WINCODEC_ERR_PALETTEUNAVAILABLE"
,err[0x88982f46]:="WINCODEC_ERR_CODECTOOMANYSCANLINES"
,err[0x88982f48]:="WINCODEC_ERR_INTERNALERROR"
,err[0x88982f49]:="WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS"
,err[0x88982f50]:="WINCODEC_ERR_COMPONENTNOTFOUND"
err[0x88982f51]:="WINCODEC_ERR_IMAGESIZEOUTOFRANGE"
,err[0x88982f52]:="WINCODEC_ERR_TOOMUCHMETADATA"
,err[0x88982f60]:="WINCODEC_ERR_BADIMAGE"
,err[0x88982f61]:="WINCODEC_ERR_BADHEADER"
,err[0x88982f62]:="WINCODEC_ERR_FRAMEMISSING"
,err[0x88982f63]:="WINCODEC_ERR_BADMETADATAHEADER"
,err[0x88982f70]:="WINCODEC_ERR_BADSTREAMDATA"
,err[0x88982f71]:="WINCODEC_ERR_STREAMWRITE"
,err[0x88982f72]:="WINCODEC_ERR_STREAMREAD"
,err[0x88982f73]:="WINCODEC_ERR_STREAMNOTAVAILABLE"
,err[0x88982f80]:="WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT"
,err[0x88982f81]:="WINCODEC_ERR_UNSUPPORTEDOPERATION"
,err[0x88982f8A]:="WINCODEC_ERR_INVALIDREGISTRATION"
,err[0x88982f8B]:="WINCODEC_ERR_COMPONENTINITIALIZEFAILURE"
,err[0x88982f8C]:="WINCODEC_ERR_INSUFFICIENTBUFFER"
,err[0x88982f8D]:="WINCODEC_ERR_DUPLICATEMETADATAPRESENT"
,err[0x88982f8E]:="WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE"
,err[0x88982f8F]:="WINCODEC_ERR_UNEXPECTEDSIZE"
,err[0x88982f90]:="WINCODEC_ERR_INVALIDQUERYREQUEST"
,err[0x88982f91]:="WINCODEC_ERR_UNEXPECTEDMETADATATYPE"
,err[0x88982f92]:="WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT"
,err[0x88982f93]:="WINCODEC_ERR_INVALIDQUERYCHARACTER"
}
if a && (a&=0xFFFFFFFF)
{
if err.haskey(a)
return err[a]
}
return a
}
Last edited by malcev on 22 Dec 2019, 21:26, edited 1 time in total.
Re: Anti-cheat black screen
yes this works!
also, today, the other ones are working too. this one works now. i dont know why WritePixels was failing the other day. is it better to convert image? also the same one from this thread is working with the different FEATURE LEVEL = 9
Last edited by guest3456 on 09 Dec 2019, 10:34, edited 3 times in total.
Re: Anti-cheat black screen
If You use DwmpDxGetWindowSharedSurface then it safer to convert image.
Needing of converting we can get with this function:
https://docs.microsoft.com/en-us/windows/win32/api/wincodec/nf-wincodec-iwicbitmapframeencode-setpixelformat
But it is strange thing - though it shows that We dont need to convert, but on out bmp in some programs looks transparent and png always will be broken.
May be tomorrow I will try to get dwm shared surface with directx9 help.
Needing of converting we can get with this function:
https://docs.microsoft.com/en-us/windows/win32/api/wincodec/nf-wincodec-iwicbitmapframeencode-setpixelformat
But it is strange thing - though it shows that We dont need to convert, but on out bmp in some programs looks transparent and png always will be broken.
May be tomorrow I will try to get dwm shared surface with directx9 help.
Re: Anti-cheat black screen
i just tried with the old one with the feature level 9, the script fails on this DllCall line:
Code: Select all
ptr := A_PtrSize ? "Ptr" : "UInt"
DwmpDxGetWindowSharedSurfaceAddr := DllCall("GetProcAddress", Ptr, DllCall("GetModuleHandle", "Str", "dwmapi", Ptr), "UInt", 100, Ptr)
hr := DllCall(DwmpDxGetWindowSharedSurfaceAddr, ptr, hwnd, "int64", luidAdapter, ptr, hmonitorAssociation, "uint", dwFlags, "uint*", pfmtWindow, ptr "*", phDxSurface, "int64*", puiUpdateId)
Re: Anti-cheat black screen
Instead of this function You can try to use this non-documented function from user32.dll, where in parameter is captureHwnd.
Code: Select all
hr := DllCall("DwmGetDxSharedSurface", "ptr", captureHwnd, "ptr*", phDxSurface, "int64*", luidAdapter, "uint*", pFmtWindow, "uint*", pPresentFlags, "int64*", pWin32kUpdateId)
if !hr or errorlevel
msgbox % "errorlevel - " errorlevel "`nA_LastError - " A_lastError
Re: Anti-cheat black screen
But I cannot get dwm shared surface with directx9 help.
I do not know how to convert this line of code to ahk:
I do not know how to convert this line of code to ahk:
https://github.com/Vivelin/Superscrot/blob/master/Superscrot/DwmCapture.cs#L55/* Hack because SlimDX does not let you specify a shared handle for creating shared resources we
* have to create an IDirect3DDevice9 reference to the device instead */
IDirect3DDevice9 devEx = (IDirect3DDevice9)Marshal.GetObjectForIUnknown(_deviceEx.ComPointer);
Code: Select all
;
; Script Requirements:
;
; DirectX - March 2008 or later. (d3dx9_37.dll)
; DirectX End-User Runtime Web Installer (March 2008):
; http://www.microsoft.com/downloads/details.aspx?FamilyId=2DA43D38-DB71-4C1B-BC6A-9B6652CD92A3&displaylang=en
;
file := "file.bmp" ; can be: png, bmp, jpg, tiff, gif
captureHwnd := 0x90882
setbatchlines -1
formatGuid := WIC_GUID(GUID, "GUID_WICPixelFormat32bppBGRA")
Extension := RegexReplace(file, "^.+\.")
if (Extension = "png")
ContainerFormat := "GUID_ContainerFormatPng"
else if (Extension = "bmp")
ContainerFormat := "GUID_ContainerFormatBmp"
else if (Extension = "jpg")
ContainerFormat := "GUID_ContainerFormatJpeg"
else if (Extension = "tiff")
ContainerFormat := "GUID_ContainerFormatTiff"
else if (Extension = "gif")
ContainerFormat := "GUID_ContainerFormatGif"
else
{
msgbox extension %Extension% cannot use
ExitApp
}
LOAD_DLL_DWMAPI()
d3dEx := Direct3DCreate9Ex(D3D_SDK_VERSION := 32)
if !d3dEx
{
MsgBox, 16, Error, Direct3DCreate9Ex failed.
ExitApp
}
IDirect3D9Ex_GetAdapterLUID(d3dEx, Adapter := 0, luidAdapter)
VarSetCapacity(D3DPRESENT_PARAMETERS, 48+2*A_PtrSize, 0)
NumPut(D3DFMT_A8R8G8B8 := 21, D3DPRESENT_PARAMETERS, 8, "uint") ; BackBufferFormat
NumPut(D3DSWAPEFFECT_FLIP := 2, D3DPRESENT_PARAMETERS, 24, "uint") ; SwapEffect
NumPut(1, D3DPRESENT_PARAMETERS, 24+2*A_PtrSize, "int") ; Windowed
NumPut(D3DPRESENTFLAG_LOCKABLE_BACKBUFFER := 1, D3DPRESENT_PARAMETERS, 36+2*A_PtrSize, "uint") ; Flags
IDirect3D9Ex_CreateDeviceEx(d3dEx, D3DADAPTER_DEFAULT := 0, D3DDEVTYPE_HAL := 1, captureHwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING := 0x00000020, &D3DPRESENT_PARAMETERS, 0, deviceEx)
DwmpDxGetWindowSharedSurface(captureHwnd, luidAdapter, 0, DWM_REDIRECTION_FLAG_SUPPORT_PRESENT_TO_GDI_SURFACE := 0x10, pfmtWindow, phDxSurface, puiUpdateId)
; return access violation
IDirect3DDevice9_CreateTexture(deviceEx, Width := 228, Height := 322, 1, D3DUSAGE_RENDERTARGET := 1, D3DFMT_A8R8G8B8 := 21, D3DPOOL_DEFAULT := 0, texture, phDxSurface)
if !wic
wic := IWICCreate()
IWICImagingFactory_CreateStream(wic, stream)
IWICStream_InitializeFromFilename(stream, file, GENERIC_WRITE := 0x40000000)
IWICImagingFactory_CreateEncoder(wic, ContainerFormat, 0, encoder)
IWICBitmapEncoder_Initialize(encoder, stream, WICBitmapEncoderNoCache := 0x2)
IWICBitmapEncoder_CreateNewFrame(encoder, frame)
IWICBitmapFrameEncode_Initialize(frame)
IWICBitmapFrameEncode_SetSize(frame, width, height)
IWICImagingFactory_CreateFormatConverter(wic, FormatConverter)
IWICImagingFactory_CreateBitmapFromMemory(wic, width, height, formatGuid, pitch, pitch * height, pBits, Bitmap)
IWICFormatConverter_Initialize(FormatConverter, Bitmap, "GUID_WICPixelFormat24bppBGR", WICBitmapDitherTypeNone := 0, 0, 0, WICBitmapPaletteTypeMedianCut := 0x1)
IWICBitmapFrameEncode_SetPixelFormat(frame, formatGuid)
VarSetCapacity(Rect, 16, 0)
NumPut(width, Rect, 8, "int")
NumPut(height, Rect, 12, "int")
IWICBitmapFrameEncode_WriteSource(frame, FormatConverter, &Rect)
Release(FormatConverter)
Release(Bitmap)
FormatConverter := Bitmap := ""
IWICBitmapFrameEncode_Commit(frame)
IWICBitmapEncoder_Commit(encoder)
Release(stream)
Release(frame)
Release(encoder)
stream := frame := encoder := ""
IDirect3DSurface9_UnlockRect(surface)
Release(surface)
Release(device)
Release(d3d)
msgbox done
return
LOAD_DLL_DWMAPI()
{
if !DllCall("GetModuleHandle","str","dwmapi")
DllCall("LoadLibrary","str","dwmapi.dll")
}
Direct3DCreate9Ex(SDKVersion)
{
if !DllCall("GetModuleHandle","str","d3d9")
DllCall("LoadLibrary","str","d3d9")
hr := DllCall("d3d9\Direct3DCreate9Ex", "uint", SDKVersion, "ptr*", IDirect3D9Ex)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
return IDirect3D9Ex
}
IDirect3D9Ex_GetAdapterLUID(this, Adapter, ByRef pLUID)
{
hr := DllCall(NumGet(NumGet(this+0)+21*A_PtrSize), "ptr", this, "uint", Adapter, "ptr*", pLUID)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3D9Ex_CreateDeviceEx(this,Adapter,DeviceType,hFocusWindow,BehaviorFlags,pPresentationParameters,pFullscreenDisplayMode, ByRef ppReturnedDeviceInterface)
{
hr := DllCall(NumGet(NumGet(this+0)+20*A_PtrSize),"ptr",this,"uint",Adapter,"uint",DeviceType,"ptr",hFocusWindow,"uint",BehaviorFlags,"ptr",pPresentationParameters,"ptr",pFullscreenDisplayMode,"ptr*",ppReturnedDeviceInterface)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
DwmpDxGetWindowSharedSurface(hwnd, luidAdapter, hmonitorAssociation, dwFlags, ByRef pfmtWindow, ByRef phDxSurface, ByRef puiUpdateId)
{
static DwmpDxGetWindowSharedSurfaceAddr
if !DwmpDxGetWindowSharedSurfaceAddr
DwmpDxGetWindowSharedSurfaceAddr := DllCall("GetProcAddress", Ptr, DllCall("GetModuleHandle", "Str", "dwmapi", Ptr), "UInt", 100, Ptr)
hr := DllCall(DwmpDxGetWindowSharedSurfaceAddr, "ptr", hwnd, "int64", luidAdapter, "ptr", hmonitorAssociation, "uint", dwFlags, "uint*", pfmtWindow, "ptr*", phDxSurface, "int64*", puiUpdateId)
if (hr != 0x00263005) or ErrorLevel ; DWM_S_GDI_REDIRECTION_SURFACE
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3DDevice9Ex_CreateOffscreenPlainSurfaceEx(this,Width,Height,Format,Pool,ByRef ppSurface,pSharedHandle,Usage)
{
hr := DllCall(NumGet(NumGet(this+0)+130*A_PtrSize),"ptr",this,"uint",Width,"uint",Height,"uint",Format,"uint",Pool,"ptr*",ppSurface,"ptr",pSharedHandle, "uint", Usage)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3DDevice9_CreateTexture(this,Width,Height,Levels,Usage,Format,Pool,ByRef ppTexture,pSharedHandle)
{
hr := DllCall(NumGet(NumGet(this+0)+23*A_PtrSize),"ptr",this,"uint",Width,"uint",Height,"uint",Levels,"uint",Usage,"uint",Format,"uint",Pool,"ptr*",ppTexture,"ptr",pSharedHandle)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3D9_GetAdapterDisplayMode(this,Adapter,pMode)
{
hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize),"ptr",this,"uint",Adapter,"ptr",pMode)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3D9_CreateDevice(this,Adapter,DeviceType,hFocusWindow,BehaviorFlags,pPresentationParameters,ByRef ppReturnedDeviceInterface)
{
hr := DllCall(NumGet(NumGet(this+0)+16*A_PtrSize),"ptr",this,"uint",Adapter,"uint",DeviceType,"ptr",hFocusWindow,"uint",BehaviorFlags,"ptr",pPresentationParameters,"ptr*",ppReturnedDeviceInterface)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3DDevice9_GetFrontBufferData(this,iSwapChain,pDestSurface)
{
hr := DllCall(NumGet(NumGet(this+0)+33*A_PtrSize),"ptr",this,"uint",iSwapChain,"ptr",pDestSurface)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3DDevice9_CreateOffscreenPlainSurface(this,Width,Height,Format,Pool,ByRef ppSurface,pSharedHandle)
{
hr := DllCall(NumGet(NumGet(this+0)+36*A_PtrSize),"ptr",this,"uint",Width,"uint",Height,"uint",Format,"uint",Pool,"ptr*",ppSurface,"ptr",pSharedHandle)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3DSurface9_LockRect(this,pLockedRect,pRect,Flags)
{
hr := DllCall(NumGet(NumGet(this+0)+13*A_PtrSize),"ptr",this,"ptr",pLockedRect,"ptr",pRect,"uint",Flags)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDirect3DSurface9_UnlockRect(this)
{
hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize),"ptr",this)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
Release(this) { ; COM_Release. So far the only required COM_* function...
return DllCall(NumGet(NumGet(this+0)+2*A_PtrSize), "ptr", this)
}
_Error(val)
{
msgbox % val
ExitApp
}
IWICCreate()
{
return ComObjCreate("{cacaf262-9370-4615-a13b-9f5539da4c0a}", "{ec5ec8a9-c395-4314-9c77-54d7a935ff70}")
}
IWICImagingFactory_CreateStream(this, ByRef ppIWICStream)
{
hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize), "ptr", this, "ptr*", ppIWICStream)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICImagingFactory_CreateFormatConverter(this, ByRef ppIFormatConverter)
{
hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFormatConverter)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICStream_InitializeFromFilename(this, wzFileName, dwDesiredAccess)
{
hr := DllCall(NumGet(NumGet(this+0)+15*A_PtrSize), "ptr", this, "str", wzFileName, "uint", dwDesiredAccess)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICImagingFactory_CreateEncoder(this, guidContainerFormat, pguidVendor, ByRef ppIEncoder)
{
hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", WIC_GUID(GUID1, guidContainerFormat), "ptr", WIC_GUID(GUID2, pguidVendor), "ptr*", ppIEncoder)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapEncoder_Initialize(this, pIStream, cacheOption)
{
hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIStream, "int", cacheOption)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapEncoder_CreateNewFrame(this, ByRef ppIFrameEncode, ppIEncoderOptions := 0)
{
hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFrameEncode, "ptr*", ppIEncoderOptions)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapEncoder_Commit(this)
{
hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_Initialize(this, pIEncoderOptions := 0)
{
hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIEncoderOptions)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_SetSize(this, uiWidth, uiHeight)
{
hr := DllCall(NumGet(NumGet(this+0)+4*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_WritePixels(this, lineCount, cbStride, cbBufferSize, pbPixels)
{
hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "uint", lineCount, "uint", cbStride, "uint", cbBufferSize, "ptr", pbPixels)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_Commit(this)
{
hr := DllCall(NumGet(NumGet(this+0)+12*A_PtrSize), "ptr", this)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_WriteSource(this, pIBitmapSource, prc)
{
hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this, "ptr", pIBitmapSource, "ptr", prc)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICImagingFactory_CreateBitmapFromMemory(this, uiWidth, uiHeight, pixelFormat, cbStride, cbBufferSize, pbBuffer, ByRef ppIBitmap)
{
hr := DllCall(NumGet(NumGet(this+0)+20*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight, "ptr", pixelFormat, "uint", cbStride, "uint", cbBufferSize, "ptr", pbBuffer, "ptr*", ppIBitmap)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICFormatConverter_Initialize(this, pISource, dstFormat, dither, pIPalette, alphaThresholdPercent, paletteTranslate)
{
dstFormat := WIC_GUID(GUID, dstFormat)
hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", pISource, "ptr", dstFormat, "uint", dither, "ptr", pIPalette, "double", alphaThresholdPercent, "uint", alphaThresholdPercent)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICFormatConverter_CanConvert(this, srcPixelFormat, dstPixelFormat)
{
hr := DllCall(NumGet(NumGet(this+0)+9*A_PtrSize), "ptr", this, "ptr", srcPixelFormat, "ptr", dstPixelFormat, "ptr*", pfCanConvert)
if hr or ErrorLevel or !pfCanConvert
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel "`npfCanConvert=0")
}
IWICBitmapFrameEncode_SetPixelFormat(this, ByRef pPixelFormat)
{
hr := DllCall(NumGet(NumGet(this+0)+6*A_PtrSize), "ptr", this, "ptr*", pPixelFormat)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
WIC_GUID(ByRef GUID,name){
static init:=1,_:={}
if init {
init:=0
; Decoders
_.CLSID_WICBmpDecoder:=[0x6b462062, 0x7cbf, 0x400d, 0x9f, 0xdb, 0x81, 0x3d, 0xd1, 0xf, 0x27, 0x78]
,_.CLSID_WICPngDecoder:=[0x389ea17b, 0x5078, 0x4cde, 0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51]
,_.CLSID_WICIcoDecoder:=[0xc61bfcdf, 0x2e0f, 0x4aad, 0xa8, 0xd7, 0xe0, 0x6b, 0xaf, 0xeb, 0xcd, 0xfe]
,_.CLSID_WICJpegDecoder:=[0x9456a480, 0xe88b, 0x43ea, 0x9e, 0x73, 0xb, 0x2d, 0x9b, 0x71, 0xb1, 0xca]
,_.CLSID_WICGifDecoder:=[0x381dda3c, 0x9ce9, 0x4834, 0xa2, 0x3e, 0x1f, 0x98, 0xf8, 0xfc, 0x52, 0xbe]
,_.CLSID_WICTiffDecoder:=[0xb54e85d9, 0xfe23, 0x499f, 0x8b, 0x88, 0x6a, 0xce, 0xa7, 0x13, 0x75, 0x2b]
,_.CLSID_WICWmpDecoder:=[0xa26cec36, 0x234c, 0x4950, 0xae, 0x16, 0xe3, 0x4a, 0xac, 0xe7, 0x1d, 0x0d]
; Encoders
_.CLSID_WICBmpEncoder:=[0x69be8bb4, 0xd66d, 0x47c8, 0x86, 0x5a, 0xed, 0x15, 0x89, 0x43, 0x37, 0x82]
,_.CLSID_WICPngEncoder:=[0x27949969, 0x876a, 0x41d7, 0x94, 0x47, 0x56, 0x8f, 0x6a, 0x35, 0xa4, 0xdc]
,_.CLSID_WICJpegEncoder:=[0x1a34f5c1, 0x4a5a, 0x46dc, 0xb6, 0x44, 0x1f, 0x45, 0x67, 0xe7, 0xa6, 0x76]
,_.CLSID_WICGifEncoder:=[0x114f5598, 0xb22, 0x40a0, 0x86, 0xa1, 0xc8, 0x3e, 0xa4, 0x95, 0xad, 0xbd]
,_.CLSID_WICTiffEncoder:=[0x0131be10, 0x2001, 0x4c5f, 0xa9, 0xb0, 0xcc, 0x88, 0xfa, 0xb6, 0x4c, 0xe8]
,_.CLSID_WICWmpEncoder:=[0xac4ce3cb, 0xe1c1, 0x44cd, 0x82, 0x15, 0x5a, 0x16, 0x65, 0x50, 0x9e, 0xc2]
; Container Formats
_.GUID_ContainerFormatBmp:=[0xaf1d87e, 0xfcfe, 0x4188, 0xbd, 0xeb, 0xa7, 0x90, 0x64, 0x71, 0xcb, 0xe3]
,_.GUID_ContainerFormatPng:=[0x1b7cfaf4, 0x713f, 0x473c, 0xbb, 0xcd, 0x61, 0x37, 0x42, 0x5f, 0xae, 0xaf]
,_.GUID_ContainerFormatIco:=[0xa3a860c4, 0x338f, 0x4c17, 0x91, 0x9a, 0xfb, 0xa4, 0xb5, 0x62, 0x8f, 0x21]
,_.GUID_ContainerFormatJpeg:=[0x19e4a5aa, 0x5662, 0x4fc5, 0xa0, 0xc0, 0x17, 0x58, 0x2, 0x8e, 0x10, 0x57]
,_.GUID_ContainerFormatTiff:=[0x163bcc30, 0xe2e9, 0x4f0b, 0x96, 0x1d, 0xa3, 0xe9, 0xfd, 0xb7, 0x88, 0xa3]
,_.GUID_ContainerFormatGif:=[0x1f8a5601, 0x7d4d, 0x4cbd, 0x9c, 0x82, 0x1b, 0xc8, 0xd4, 0xee, 0xb9, 0xa5]
,_.GUID_ContainerFormatWmp:=[0x57a37caa, 0x367a, 0x4540, 0x91, 0x6b, 0xf1, 0x83, 0xc5, 0x09, 0x3a, 0x4b]
; Component Identifiers
_.CLSID_WICImagingCategories:=[0xfae3d380, 0xfea4, 0x4623, 0x8c, 0x75, 0xc6, 0xb6, 0x11, 0x10, 0xb6, 0x81]
,_.CATID_WICBitmapDecoders:=[0x7ed96837, 0x96f0, 0x4812, 0xb2, 0x11, 0xf1, 0x3c, 0x24, 0x11, 0x7e, 0xd3]
,_.CATID_WICBitmapEncoders:=[0xac757296, 0x3522, 0x4e11, 0x98, 0x62, 0xc1, 0x7b, 0xe5, 0xa1, 0x76, 0x7e]
,_.CATID_WICPixelFormats:=[0x2b46e70f, 0xcda7, 0x473e, 0x89, 0xf6, 0xdc, 0x96, 0x30, 0xa2, 0x39, 0x0b]
,_.CATID_WICFormatConverters:=[0x7835eae8, 0xbf14, 0x49d1, 0x93, 0xce, 0x53, 0x3a, 0x40, 0x7b, 0x22, 0x48]
,_.CATID_WICMetadataReader:=[0x05af94d8, 0x7174, 0x4cd2, 0xbe, 0x4a, 0x41, 0x24, 0xb8, 0x0e, 0xe4, 0xb8]
,_.CATID_WICMetadataWriter:=[0xabe3b9a4, 0x257d, 0x4b97, 0xbd, 0x1a, 0x29, 0x4a, 0xf4, 0x96, 0x22, 0x2e]
; Format Converters
_.CLSID_WICDefaultFormatConverter:=[0x1a3f11dc, 0xb514, 0x4b17, 0x8c, 0x5f, 0x21, 0x54, 0x51, 0x38, 0x52, 0xf1]
,_.CLSID_WICFormatConverterHighColor:=[0xac75d454, 0x9f37, 0x48f8, 0xb9, 0x72, 0x4e, 0x19, 0xbc, 0x85, 0x60, 0x11]
,_.CLSID_WICFormatConverterNChannel:=[0xc17cabb2, 0xd4a3, 0x47d7, 0xa5, 0x57, 0x33, 0x9b, 0x2e, 0xfb, 0xd4, 0xf1]
,_.CLSID_WICFormatConverterWMPhoto:=[0x9cb5172b, 0xd600, 0x46ba, 0xab, 0x77, 0x77, 0xbb, 0x7e, 0x3a, 0x00, 0xd9]
; Metadata Handlers
_.GUID_MetadataFormatUnknown:=[0xA45E592F, 0x9078, 0x4A7C, 0xAD, 0xB5, 0x4E, 0xDC, 0x4F, 0xD6, 0x1B, 0x1F]
,_.GUID_MetadataFormatIfd:=[0x537396C6, 0x2D8A, 0x4BB6, 0x9B, 0xF8, 0x2F, 0x0A, 0x8E, 0x2A, 0x3A, 0xDF]
,_.GUID_MetadataFormatSubIfd:=[0x58A2E128, 0x2DB9, 0x4E57, 0xBB, 0x14, 0x51, 0x77, 0x89, 0x1E, 0xD3, 0x31]
,_.GUID_MetadataFormatExif:=[0x1C3C4F9D, 0xB84A, 0x467D, 0x94, 0x93, 0x36, 0xCF, 0xBD, 0x59, 0xEA, 0x57]
,_.GUID_MetadataFormatGps:=[0x7134AB8A, 0x9351, 0x44AD, 0xAF, 0x62, 0x44, 0x8D, 0xB6, 0xB5, 0x02, 0xEC]
,_.GUID_MetadataFormatInterop:=[0xED686F8E, 0x681F, 0x4C8B, 0xBD, 0x41, 0xA8, 0xAD, 0xDB, 0xF6, 0xB3, 0xFC]
,_.GUID_MetadataFormatApp0:=[0x79007028, 0x268D, 0x45d6, 0xA3, 0xC2, 0x35, 0x4E, 0x6A, 0x50, 0x4B, 0xC9]
,_.GUID_MetadataFormatApp1:=[0x8FD3DFC3, 0xF951, 0x492B, 0x81, 0x7F, 0x69, 0xC2, 0xE6, 0xD9, 0xA5, 0xB0]
,_.GUID_MetadataFormatApp13:=[0x326556A2, 0xF502, 0x4354, 0x9C, 0xC0, 0x8E, 0x3F, 0x48, 0xEA, 0xF6, 0xB5]
,_.GUID_MetadataFormatIPTC:=[0x4FAB0914, 0xE129, 0x4087, 0xA1, 0xD1, 0xBC, 0x81, 0x2D, 0x45, 0xA7, 0xB5]
,_.GUID_MetadataFormatIRB:=[0x16100D66, 0x8570, 0x4BB9, 0xB9, 0x2D, 0xFD, 0xA4, 0xB2, 0x3E, 0xCE, 0x67]
,_.GUID_MetadataFormat8BIMIPTC:=[0x0010568c, 0x0852, 0x4e6a, 0xb1, 0x91, 0x5c, 0x33, 0xac, 0x5b, 0x04, 0x30]
,_.GUID_MetadataFormat8BIMResolutionInfo:=[0x739F305D, 0x81DB, 0x43CB, 0xAC, 0x5E, 0x55, 0x01, 0x3E, 0xF9, 0xF0, 0x03]
_.GUID_MetadataFormat8BIMIPTCDigest:=[0x1CA32285, 0x9CCD, 0x4786, 0x8B, 0xD8, 0x79, 0x53, 0x9D, 0xB6, 0xA0, 0x06]
,_.GUID_MetadataFormatXMP:=[0xBB5ACC38, 0xF216, 0x4CEC, 0xA6, 0xC5, 0x5F, 0x6E, 0x73, 0x97, 0x63, 0xA9]
,_.GUID_MetadataFormatThumbnail:=[0x243dcee9, 0x8703, 0x40ee, 0x8e, 0xf0, 0x22, 0xa6, 0x0, 0xb8, 0x5, 0x8c]
,_.GUID_MetadataFormatChunktEXt:=[0x568d8936, 0xc0a9, 0x4923, 0x90, 0x5d, 0xdf, 0x2b, 0x38, 0x23, 0x8f, 0xbc]
,_.GUID_MetadataFormatXMPStruct:=[0x22383CF1, 0xED17, 0x4E2E, 0xAF, 0x17, 0xD8, 0x5B, 0x8F, 0x6B, 0x30, 0xD0]
,_.GUID_MetadataFormatXMPBag:=[0x833CCA5F, 0xDCB7, 0x4516, 0x80, 0x6F, 0x65, 0x96, 0xAB, 0x26, 0xDC, 0xE4]
,_.GUID_MetadataFormatXMPSeq:=[0x63E8DF02, 0xEB6C,0x456C, 0xA2, 0x24, 0xB2, 0x5E, 0x79, 0x4F, 0xD6, 0x48]
,_.GUID_MetadataFormatXMPAlt:=[0x7B08A675, 0x91AA, 0x481B, 0xA7, 0x98, 0x4D, 0xA9, 0x49, 0x08, 0x61, 0x3B]
,_.GUID_MetadataFormatLSD:=[0xE256031E, 0x6299, 0x4929, 0xB9, 0x8D, 0x5A, 0xC8, 0x84, 0xAF, 0xBA, 0x92]
,_.GUID_MetadataFormatIMD:=[0xBD2BB086, 0x4D52, 0x48DD, 0x96, 0x77, 0xDB, 0x48, 0x3E, 0x85, 0xAE, 0x8F]
,_.GUID_MetadataFormatGCE:=[0x2A25CAD8, 0xDEEB, 0x4C69, 0xA7, 0x88, 0xE, 0xC2, 0x26, 0x6D, 0xCA, 0xFD]
,_.GUID_MetadataFormatAPE:=[0x2E043DC2, 0xC967, 0x4E05, 0x87, 0x5E, 0x61, 0x8B, 0xF6, 0x7E, 0x85, 0xC3]
_.GUID_MetadataFormatJpegChrominance:=[0xF73D0DCF, 0xCEC6, 0x4F85, 0x9B, 0x0E, 0x1C, 0x39, 0x56, 0xB1, 0xBE, 0xF7]
,_.GUID_MetadataFormatJpegLuminance:=[0x86908007, 0xEDFC, 0x4860, 0x8D, 0x4B, 0x4E, 0xE6, 0xE8, 0x3E, 0x60, 0x58]
,_.GUID_MetadataFormatJpegComment:=[0x220E5F33, 0xAFD3, 0x474E, 0x9D, 0x31, 0x7D, 0x4F, 0xE7, 0x30, 0xF5, 0x57]
,_.GUID_MetadataFormatGifComment:=[0xC4B6E0E0, 0xCFB4, 0x4AD3, 0xAB, 0x33, 0x9A, 0xAD, 0x23, 0x55, 0xA3, 0x4A]
,_.GUID_MetadataFormatChunkgAMA:=[0xF00935A5, 0x1D5D, 0x4CD1, 0x81, 0xB2, 0x93, 0x24, 0xD7, 0xEC, 0xA7, 0x81]
,_.GUID_MetadataFormatChunkbKGD:=[0xE14D3571, 0x6B47, 0x4DEA, 0xB6, 0xA, 0x87, 0xCE, 0xA, 0x78, 0xDF, 0xB7]
,_.GUID_MetadataFormatChunkiTXt:=[0xC2BEC729, 0xB68, 0x4B77, 0xAA, 0xE, 0x62, 0x95, 0xA6, 0xAC, 0x18, 0x14]
,_.GUID_MetadataFormatChunkcHRM:=[0x9DB3655B, 0x2842, 0x44B3, 0x80, 0x67, 0x12, 0xE9, 0xB3, 0x75, 0x55, 0x6A]
,_.GUID_MetadataFormatChunkhIST:=[0xC59A82DA, 0xDB74, 0x48A4, 0xBD, 0x6A, 0xB6, 0x9C, 0x49, 0x31, 0xEF, 0x95]
,_.GUID_MetadataFormatChunkiCCP:=[0xEB4349AB, 0xB685, 0x450F, 0x91, 0xB5, 0xE8, 0x2, 0xE8, 0x92, 0x53, 0x6C]
,_.GUID_MetadataFormatChunksRGB:=[0xC115FD36, 0xCC6F, 0x4E3F, 0x83, 0x63, 0x52, 0x4B, 0x87, 0xC6, 0xB0, 0xD9]
,_.GUID_MetadataFormatChunktIME:=[0x6B00AE2D, 0xE24B, 0x460A, 0x98, 0xB6, 0x87, 0x8B, 0xD0, 0x30, 0x72, 0xFD]
; Vendor Identification
_.GUID_VendorMicrosoft:=[0x69fd0fdc, 0xa866, 0x4108, 0xb3, 0xb2, 0x98, 0x44, 0x7f, 0xa9, 0xed, 0xd4]
,_.GUID_VendorMicrosoftBuiltIn:=[0x257a30fd, 0x6b6, 0x462b, 0xae, 0xa4, 0x63, 0xf7, 0xb, 0x86, 0xe5, 0x33]
; WICBitmapPaletteType
_.GUID_WICPixelFormatDontCare:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x00]
,_.GUID_WICPixelFormat1bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x01]
,_.GUID_WICPixelFormat2bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x02]
,_.GUID_WICPixelFormat4bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x03]
,_.GUID_WICPixelFormat8bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x04]
,_.GUID_WICPixelFormatBlackWhite:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x05]
,_.GUID_WICPixelFormat2bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x06]
,_.GUID_WICPixelFormat4bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x07]
,_.GUID_WICPixelFormat8bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x08]
,_.GUID_WICPixelFormat8bppAlpha:=[0xe6cd0116, 0xeeba, 0x4161, 0xaa, 0x85, 0x27, 0xdd, 0x9f, 0xb3, 0xa8, 0x95]
,_.GUID_WICPixelFormat16bppBGR555:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x09]
,_.GUID_WICPixelFormat16bppBGR565:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0a]
,_.GUID_WICPixelFormat16bppBGRA5551:=[0x05ec7c2b, 0xf1e6, 0x4961, 0xad, 0x46, 0xe1, 0xcc, 0x81, 0x0a, 0x87, 0xd2]
_.GUID_WICPixelFormat16bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0b]
,_.GUID_WICPixelFormat24bppBGR:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0c]
,_.GUID_WICPixelFormat24bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0d]
,_.GUID_WICPixelFormat32bppBGR:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0e]
,_.GUID_WICPixelFormat32bppBGRA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0f]
,_.GUID_WICPixelFormat32bppPBGRA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x10]
,_.GUID_WICPixelFormat32bppGrayFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x11]
,_.GUID_WICPixelFormat32bppRGBA:=[0xf5c7ad2d, 0x6a8d, 0x43dd, 0xa7, 0xa8, 0xa2, 0x99, 0x35, 0x26, 0x1a, 0xe9]
,_.GUID_WICPixelFormat32bppPRGBA:=[0x3cc4a650, 0xa527, 0x4d37, 0xa9, 0x16, 0x31, 0x42, 0xc7, 0xeb, 0xed, 0xba]
,_.GUID_WICPixelFormat48bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x15]
,_.GUID_WICPixelFormat48bppBGR:=[0xe605a384, 0xb468, 0x46ce, 0xbb, 0x2e, 0x36, 0xf1, 0x80, 0xe6, 0x43, 0x13]
,_.GUID_WICPixelFormat64bppRGBA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x16]
,_.GUID_WICPixelFormat64bppBGRA:=[ 0x1562ff7c, 0xd352, 0x46f9, 0x97, 0x9e, 0x42, 0x97, 0x6b, 0x79, 0x22, 0x46]
_.GUID_WICPixelFormat64bppPRGBA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x17]
,_.GUID_WICPixelFormat64bppPBGRA:=[0x8c518e8e, 0xa4ec, 0x468b, 0xae, 0x70, 0xc9, 0xa3, 0x5a, 0x9c, 0x55, 0x30]
,_.GUID_WICPixelFormat16bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x13]
,_.GUID_WICPixelFormat32bppBGR101010:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x14]
,_.GUID_WICPixelFormat48bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x12]
,_.GUID_WICPixelFormat48bppBGRFixedPoint:=[0x49ca140e, 0xcab6, 0x493b, 0x9d, 0xdf, 0x60, 0x18, 0x7c, 0x37, 0x53, 0x2a]
,_.GUID_WICPixelFormat96bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x18]
,_.GUID_WICPixelFormat128bppRGBAFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x19]
,_.GUID_WICPixelFormat128bppPRGBAFloat:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1a]
,_.GUID_WICPixelFormat128bppRGBFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1b]
,_.GUID_WICPixelFormat32bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1c]
,_.GUID_WICPixelFormat64bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1d]
,_.GUID_WICPixelFormat64bppBGRAFixedPoint:=[0x356de33c, 0x54d2, 0x4a23, 0xbb, 0x4, 0x9b, 0x7b, 0xf9, 0xb1, 0xd4, 0x2d]
_.GUID_WICPixelFormat64bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x40]
,_.GUID_WICPixelFormat128bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1e]
,_.GUID_WICPixelFormat128bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x41]
,_.GUID_WICPixelFormat64bppRGBAHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3a]
,_.GUID_WICPixelFormat64bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x42]
,_.GUID_WICPixelFormat48bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3b]
,_.GUID_WICPixelFormat32bppRGBE:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3d]
,_.GUID_WICPixelFormat16bppGrayHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3e]
,_.GUID_WICPixelFormat32bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3f]
,_.GUID_WICPixelFormat32bppRGBA1010102:=[0x25238D72, 0xFCF9, 0x4522, 0xb5, 0x14, 0x55, 0x78, 0xe5, 0xad, 0x55, 0xe0]
,_.GUID_WICPixelFormat32bppRGBA1010102XR:=[0x00DE6B9A, 0xC101, 0x434b, 0xb5, 0x02, 0xd0, 0x16, 0x5e, 0xe1, 0x12, 0x2c]
,_.GUID_WICPixelFormat64bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1f]
,_.GUID_WICPixelFormat24bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x20]
_.GUID_WICPixelFormat32bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x21]
,_.GUID_WICPixelFormat40bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x22]
,_.GUID_WICPixelFormat48bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x23]
,_.GUID_WICPixelFormat56bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x24]
,_.GUID_WICPixelFormat64bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x25]
,_.GUID_WICPixelFormat48bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x26]
,_.GUID_WICPixelFormat64bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x27]
,_.GUID_WICPixelFormat80bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x28]
,_.GUID_WICPixelFormat96bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x29]
,_.GUID_WICPixelFormat112bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2a]
,_.GUID_WICPixelFormat128bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2b]
,_.GUID_WICPixelFormat40bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2c]
,_.GUID_WICPixelFormat80bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2d]
,_.GUID_WICPixelFormat32bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2e]
_.GUID_WICPixelFormat40bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2f]
,_.GUID_WICPixelFormat48bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x30]
,_.GUID_WICPixelFormat56bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x31]
,_.GUID_WICPixelFormat64bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x32]
,_.GUID_WICPixelFormat72bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x33]
,_.GUID_WICPixelFormat64bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x34]
,_.GUID_WICPixelFormat80bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x35]
,_.GUID_WICPixelFormat96bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x36]
,_.GUID_WICPixelFormat112bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x37]
,_.GUID_WICPixelFormat128bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x38]
,_.GUID_WICPixelFormat144bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x39]
}
if _.haskey(name){
p:=_[name]
VarSetCapacity(GUID,16)
,NumPut(p.1+(p.2<<32)+(p.3<<48),GUID,0,"int64")
,NumPut(p.4+(p.5<<8)+(p.6<<16)+(p.7<<24)+(p.8<<32)+(p.9<<40)+(p.10<<48)+(p.11<<56),GUID,8,"int64")
return &GUID
}else return name
}
WIC_hr(a){
static init:=1,err:={0x8000FFFF:"Catastrophic failure error.",0x80004001:"Not implemented error.",0x8007000E:"Out of memory error.",0x80070057:"One or more arguments are not valid error.",0x80004002:"Interface not supported error.",0x80004003:"Pointer not valid error.",0x80070006:"Handle not valid error.",0x80004004:"Operation aborted error.",0x80004005:"Unspecified error.",0x80070005:"General access denied error.",0x800401E5:"The object identified by this moniker could not be found."}
if init{
init:=0
err[0x80004005]:="WINCODEC_ERR_GENERIC_ERROR"
,err[0x80070057]:="WINCODEC_ERR_INVALIDPARAMETER"
,err[0x8007000E]:="WINCODEC_ERR_OUTOFMEMORY"
,err[0x80004001]:="WINCODEC_ERR_NOTIMPLEMENTED"
,err[0x80004004]:="WINCODEC_ERR_ABORTED"
,err[0x80070005]:="WINCODEC_ERR_ACCESSDENIED"
,err[0x88982f04]:="WINCODEC_ERR_WRONGSTATE"
,err[0x88982f05]:="WINCODEC_ERR_VALUEOUTOFRANGE"
,err[0x88982f07]:="WINCODEC_ERR_UNKNOWNIMAGEFORMAT"
,err[0x88982f0B]:="WINCODEC_ERR_UNSUPPORTEDVERSION"
,err[0x88982f0C]:="WINCODEC_ERR_NOTINITIALIZED"
,err[0x88982f0D]:="WINCODEC_ERR_ALREADYLOCKED"
,err[0x88982f40]:="WINCODEC_ERR_PROPERTYNOTFOUND"
,err[0x88982f41]:="WINCODEC_ERR_PROPERTYNOTSUPPORTED"
,err[0x88982f42]:="WINCODEC_ERR_PROPERTYSIZE"
,err[0x88982f43]:="WINCODEC_ERR_CODECPRESENT"
,err[0x88982f44]:="WINCODEC_ERR_CODECNOTHUMBNAIL"
,err[0x88982f45]:="WINCODEC_ERR_PALETTEUNAVAILABLE"
,err[0x88982f46]:="WINCODEC_ERR_CODECTOOMANYSCANLINES"
,err[0x88982f48]:="WINCODEC_ERR_INTERNALERROR"
,err[0x88982f49]:="WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS"
,err[0x88982f50]:="WINCODEC_ERR_COMPONENTNOTFOUND"
err[0x88982f51]:="WINCODEC_ERR_IMAGESIZEOUTOFRANGE"
,err[0x88982f52]:="WINCODEC_ERR_TOOMUCHMETADATA"
,err[0x88982f60]:="WINCODEC_ERR_BADIMAGE"
,err[0x88982f61]:="WINCODEC_ERR_BADHEADER"
,err[0x88982f62]:="WINCODEC_ERR_FRAMEMISSING"
,err[0x88982f63]:="WINCODEC_ERR_BADMETADATAHEADER"
,err[0x88982f70]:="WINCODEC_ERR_BADSTREAMDATA"
,err[0x88982f71]:="WINCODEC_ERR_STREAMWRITE"
,err[0x88982f72]:="WINCODEC_ERR_STREAMREAD"
,err[0x88982f73]:="WINCODEC_ERR_STREAMNOTAVAILABLE"
,err[0x88982f80]:="WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT"
,err[0x88982f81]:="WINCODEC_ERR_UNSUPPORTEDOPERATION"
,err[0x88982f8A]:="WINCODEC_ERR_INVALIDREGISTRATION"
,err[0x88982f8B]:="WINCODEC_ERR_COMPONENTINITIALIZEFAILURE"
,err[0x88982f8C]:="WINCODEC_ERR_INSUFFICIENTBUFFER"
,err[0x88982f8D]:="WINCODEC_ERR_DUPLICATEMETADATAPRESENT"
,err[0x88982f8E]:="WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE"
,err[0x88982f8F]:="WINCODEC_ERR_UNEXPECTEDSIZE"
,err[0x88982f90]:="WINCODEC_ERR_INVALIDQUERYREQUEST"
,err[0x88982f91]:="WINCODEC_ERR_UNEXPECTEDMETADATATYPE"
,err[0x88982f92]:="WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT"
,err[0x88982f93]:="WINCODEC_ERR_INVALIDQUERYCHARACTER"
}
if a && (a&=0xFFFFFFFF)
{
if err.haskey(a)
return err[a]
}
return a
}
Last edited by malcev on 22 Dec 2019, 21:26, edited 1 time in total.
Re: Anti-cheat black screen
errorlevel = 0malcev wrote: ↑09 Dec 2019, 22:21Instead of this function You can try to use this non-documented function from user32.dll, where in parameter is captureHwnd.Code: Select all
hr := DllCall("DwmGetDxSharedSurface", "ptr", captureHwnd, "ptr*", phDxSurface, "int64*", luidAdapter, "uint*", pFmtWindow, "uint*", pPresentFlags, "int64*", pWin32kUpdateId) if !hr or errorlevel msgbox % "errorlevel - " errorlevel "`nA_LastError - " A_lastError
A_LastError = 1
could be a problem with my virtual machine again
thanks anyway, you've been very helpfulmalcev wrote: ↑10 Dec 2019, 03:54But I cannot get dwm shared surface with directx9 help.
I do not know how to convert this line of code to ahk:https://github.com/Vivelin/Superscrot/blob/master/Superscrot/DwmCapture.cs#L55/* Hack because SlimDX does not let you specify a shared handle for creating shared resources we
* have to create an IDirect3DDevice9 reference to the device instead */
IDirect3DDevice9 devEx = (IDirect3DDevice9)Marshal.GetObjectForIUnknown(_deviceEx.ComPointer);
- manehscripts
- Posts: 126
- Joined: 03 May 2019, 16:10
Re: Anti-cheat black screen
Faxineirooculto wrote: ↑25 Oct 2019, 08:11Soo, a game that i started playing just implemented a system that my computer will recognize the game as a black screen, if i screenshot, everything is black like this : https://imgur.com/a/Ywt1GLq , is there any way that i make imagesearch work?
Hi all, has anyone found the solution?
-----------------------------------------------------------
Stop to think, shut up to resist, and act to win!
Stop to think, shut up to resist, and act to win!
Re: Anti-cheat black screen
Read topic from start.
- manehscripts
- Posts: 126
- Joined: 03 May 2019, 16:10
Re: Anti-cheat black screen
Hi, well I already read it, tested it all and still doesn't identify the image because of the black lock screen. I didn't find gdip_all_v1.79.ahk and I'm using the Gdip standard library v1.45 Could you pass me 1.79? Perhaps that is the problem. Thanks
-----------------------------------------------------------
Stop to think, shut up to resist, and act to win!
Stop to think, shut up to resist, and act to win!
Re: Anti-cheat black screen
You need change hwnd to Your window, run this code.
If image will be not ok, then try to disable harware acceleration in Your program.
If You cannot disable harware acceleration, then You need to inject dll and hook Your target program.
If image will be not ok, then try to disable harware acceleration in Your program.
If You cannot disable harware acceleration, then You need to inject dll and hook Your target program.
Code: Select all
file := "file.bmp" ; can be: png, bmp, jpg, tiff, gif
captureHwnd := 0x917ea
setbatchlines -1
formatGuid := WIC_GUID(GUID, "GUID_WICPixelFormat32bppBGRA")
Extension := RegexReplace(file, "^.+\.")
if (Extension = "png")
ContainerFormat := "GUID_ContainerFormatPng"
else if (Extension = "bmp")
ContainerFormat := "GUID_ContainerFormatBmp"
else if (Extension = "jpg")
ContainerFormat := "GUID_ContainerFormatJpeg"
else if (Extension = "tiff")
ContainerFormat := "GUID_ContainerFormatTiff"
else if (Extension = "gif")
ContainerFormat := "GUID_ContainerFormatGif"
else
{
msgbox extension %Extension% cannot use
ExitApp
}
LOAD_DLL_D3D11_DXGI_DWMAPI()
GrantedCapacity := VarSetCapacity(D3D_FEATURE_LEVEL, 8, 0)
NumPut(D3D_FEATURE_LEVEL_11_0 := 0xb000, D3D_FEATURE_LEVEL, 0, "uint")
NumPut(D3D_FEATURE_LEVEL_10_1 := 0xa100, D3D_FEATURE_LEVEL, 4, "uint")
D3D11CreateDevice(0, D3D_DRIVER_TYPE_HARDWARE := 1, 0, D3D11_CREATE_DEVICE_BGRA_SUPPORT := 0x20, &D3D_FEATURE_LEVEL, GrantedCapacity//4, D3D11_SDK_VERSION := 7, d3d_device, 0, d3d_context)
QueryInterface(d3d_device, IID_IDXGIDevice := "{54ec77fa-1377-44e6-8c32-88fd5f44c84c}", dxgiDevice)
IDXGIDevice_GetParent(dxgiDevice, IID_IDXGIAdapter := "{2411e7e1-12ac-4ccf-bd14-9798e8534dc0}", adapter)
VarSetCapacity(DXGI_ADAPTER_DESC, 280+3*A_PtrSize, 0)
IDXGIAdapter_GetDesc(adapter, &DXGI_ADAPTER_DESC)
luidAdapter := NumGet(DXGI_ADAPTER_DESC, 272+3*A_PtrSize, "int64")
ObjRelease(dxgiDevice)
Release(adapter)
dxgiDevice := adapter := ""
DwmpDxGetWindowSharedSurface(captureHwnd, luidAdapter, 0, DWM_REDIRECTION_FLAG_SUPPORT_PRESENT_TO_GDI_SURFACE := 0x10, pfmtWindow, phDxSurface, puiUpdateId)
DwmpDxUpdateWindowSharedSurface(captureHwnd, puiUpdateId, 0, 0, 0)
ID3D11Device_OpenSharedResource(d3d_device, phDxSurface, ID3D11Resource := "{dc8e63f3-d12b-4952-b47b-5e45026a862d}", resource)
QueryInterface(resource, IID_ID3D11Texture2D := "{6f15aaf2-d208-4e89-9ab4-489535d34f9c}", d3d11Tex)
VarSetCapacity(D3D11_TEXTURE2D_DESC, 44, 0)
ID3D11Texture2D_GetDesc(d3d11Tex, &D3D11_TEXTURE2D_DESC)
Width := NumGet(D3D11_TEXTURE2D_DESC, 0, "int")
Height := NumGet(D3D11_TEXTURE2D_DESC, 4, "int")
NumPut(1, D3D11_TEXTURE2D_DESC, 8, "uint") ; MipLevels
NumPut(1, D3D11_TEXTURE2D_DESC, 12, "uint") ; ArraySize
NumPut(DXGI_FORMAT_B8G8R8A8_UNORM := 87, D3D11_TEXTURE2D_DESC, 16, "uint") ; Format
NumPut(1, D3D11_TEXTURE2D_DESC, 20, "uint") ; SampleDescCount
NumPut(0, D3D11_TEXTURE2D_DESC, 24, "uint") ; SampleDescQuality
NumPut(D3D11_USAGE_STAGING := 3, D3D11_TEXTURE2D_DESC, 28, "uint") ; Usage
NumPut(0, D3D11_TEXTURE2D_DESC, 32, "uint") ; BindFlags
NumPut(D3D11_CPU_ACCESS_READ := 0x20000, D3D11_TEXTURE2D_DESC, 36, "uint") ; CPUAccessFlags
NumPut(0, D3D11_TEXTURE2D_DESC, 40, "uint") ; MiscFlags
ID3D11Device_CreateTexture2D(d3d_device, &D3D11_TEXTURE2D_DESC, 0, staging_tex)
Release(d3d_device)
Release(resource)
d3d_device := resource := ""
loop 1
{
ID3D11DeviceContext_CopyResource(d3d_context, staging_tex, d3d11Tex)
VarSetCapacity(D3D11_MAPPED_SUBRESOURCE, 8+A_PtrSize, 0)
ID3D11DeviceContext_Map(d3d_context, staging_tex, 0, D3D11_MAP_READ := 1, 0, &D3D11_MAPPED_SUBRESOURCE)
pBits := NumGet(D3D11_MAPPED_SUBRESOURCE, 0, "ptr")
pitch := NumGet(D3D11_MAPPED_SUBRESOURCE, A_PtrSize, "uint")
if !wic
wic := IWICCreate()
IWICImagingFactory_CreateStream(wic, stream)
IWICStream_InitializeFromFilename(stream, file, GENERIC_WRITE := 0x40000000)
IWICImagingFactory_CreateEncoder(wic, ContainerFormat, 0, encoder)
IWICBitmapEncoder_Initialize(encoder, stream, WICBitmapEncoderNoCache := 0x2)
IWICBitmapEncoder_CreateNewFrame(encoder, frame)
IWICBitmapFrameEncode_Initialize(frame)
IWICBitmapFrameEncode_SetSize(frame, width, height)
IWICImagingFactory_CreateFormatConverter(wic, FormatConverter)
IWICImagingFactory_CreateBitmapFromMemory(wic, width, height, formatGuid, pitch, pitch * height, pBits, Bitmap)
IWICFormatConverter_Initialize(FormatConverter, Bitmap, "GUID_WICPixelFormat24bppBGR", WICBitmapDitherTypeNone := 0, 0, 0, WICBitmapPaletteTypeMedianCut := 0x1)
IWICBitmapFrameEncode_SetPixelFormat(frame, formatGuid)
VarSetCapacity(Rect, 16, 0)
NumPut(width, Rect, 8, "int")
NumPut(height, Rect, 12, "int")
IWICBitmapFrameEncode_WriteSource(frame, FormatConverter, &Rect)
Release(FormatConverter)
Release(Bitmap)
FormatConverter := Bitmap := ""
IWICBitmapFrameEncode_Commit(frame)
IWICBitmapEncoder_Commit(encoder)
Release(stream)
Release(frame)
Release(encoder)
stream := frame := encoder := ""
ID3D11DeviceContext_Unmap(d3d_context, staging_tex, 0)
}
msgbox done
ExitApp
DwmpDxGetWindowSharedSurface(hwnd, luidAdapter, hmonitorAssociation, dwFlags, ByRef pfmtWindow, ByRef phDxSurface, ByRef puiUpdateId)
{
hr := DllCall("dwmapi.dll\DwmpDxGetWindowSharedSurface", "ptr", hwnd, "int64", luidAdapter, "ptr", hmonitorAssociation, "uint", dwFlags, "uint*", pfmtWindow, "ptr*", phDxSurface, "int64*", puiUpdateId)
if (hr != 0x00263005) or ErrorLevel ; DWM_S_GDI_REDIRECTION_SURFACE
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
DwmpDxUpdateWindowSharedSurface(hwnd, uiUpdateId, dwFlags, hmonitorAssociation, prc)
{
hr := DllCall("dwmapi.dll\DwmpDxUpdateWindowSharedSurface", "ptr", hwnd, "int64", uiUpdateId, "int", dwFlags, "ptr", hmonitorAssociation, "ptr", prc)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
D3D11CreateDevice(pAdapter, DriverType, Software, Flags, pFeatureLevels, FeatureLevels, SDKVersion, ByRef ppDevice, ByRef pFeatureLevel, ByRef ppImmediateContext)
{
hr := DllCall("D3D11\D3D11CreateDevice", "ptr", pAdapter, "int", DriverType, "ptr", Software, "uint", Flags, "ptr", pFeatureLevels, "uint", FeatureLevels, "uint", SDKVersion, "ptr*", ppDevice, "ptr*", pFeatureLevel, "ptr*", ppImmediateContext)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
ID3D11Texture2D_GetDesc(this, pDesc)
{
DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr", pDesc)
if ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
ID3D11Device_CreateTexture2D(this, pDesc, pInitialData, ByRef ppTexture2D)
{
hr := DllCall(NumGet(NumGet(this+0)+5*A_PtrSize), "ptr", this, "ptr", pDesc, "ptr", pInitialData, "ptr*", ppTexture2D)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
ID3D11DeviceContext_CopyResource(this, pDstResource, pSrcResource)
{
hr := DllCall(NumGet(NumGet(this+0)+47*A_PtrSize), "ptr", this, "ptr", pDstResource, "ptr", pSrcResource)
if ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
ID3D11Device_OpenSharedResource(this, phDxSurface, MIDL_INTERFACE, ByRef ppResource)
{
GUID(riid, MIDL_INTERFACE)
hr := DllCall(NumGet(NumGet(this+0)+28*A_PtrSize), "ptr", this, "ptr", phDxSurface, "ptr", &riid, "ptr*", ppResource)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
ID3D11DeviceContext_Map(this, pResource, Subresource, MapType, MapFlags, pMappedResource)
{
hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize), "ptr", this, "ptr", pResource, "uint", Subresource, "uint", MapType, "uint", MapFlags, "ptr", pMappedResource)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
ID3D11DeviceContext_Unmap(this, pResource, Subresource)
{
hr := DllCall(NumGet(NumGet(this+0)+15*A_PtrSize), "ptr", this, "ptr", pResource, "uint", Subresource)
if ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDXGIAdapter_GetDesc(this, pDesc)
{
hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", pDesc)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
IDXGIDevice_GetParent(this, MIDL_INTERFACE, ByRef ppParent)
{
GUID(riid, MIDL_INTERFACE)
hr := DllCall(NumGet(NumGet(this+0)+6*A_PtrSize), "ptr", this, "ptr", &riid, "ptr*", ppParent)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
QueryInterface(ComObject, SID, ByRef InterfacePointer)
{
InterfacePointer := ComObjQuery(ComObject, SID)
if !InterfacePointer or ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
Release(this)
{
DllCall(NumGet(NumGet(this+0)+2*A_PtrSize), "ptr", this)
if ErrorLevel
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
GUID(ByRef GUID, sGUID)
{
VarSetCapacity(GUID, 16, 0)
return DllCall("ole32\CLSIDFromString", "WStr", sGUID, "Ptr", &GUID) >= 0 ? &GUID : ""
}
LOAD_DLL_D3D11_DXGI_DWMAPI()
{
if !DllCall("GetModuleHandle","str","DXGI")
DllCall("LoadLibrary","str","DXGI")
if !DllCall("GetModuleHandle","str","D3D11")
DllCall("LoadLibrary","str","D3D11")
if !DllCall("GetModuleHandle","str","dwmapi")
DllCall("LoadLibrary","str","dwmapi.dll")
}
_Error(val)
{
msgbox % val
ExitApp
}
IWICCreate()
{
return ComObjCreate("{cacaf262-9370-4615-a13b-9f5539da4c0a}", "{ec5ec8a9-c395-4314-9c77-54d7a935ff70}")
}
IWICImagingFactory_CreateStream(this, ByRef ppIWICStream)
{
hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize), "ptr", this, "ptr*", ppIWICStream)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICImagingFactory_CreateFormatConverter(this, ByRef ppIFormatConverter)
{
hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFormatConverter)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICStream_InitializeFromFilename(this, wzFileName, dwDesiredAccess)
{
hr := DllCall(NumGet(NumGet(this+0)+15*A_PtrSize), "ptr", this, "str", wzFileName, "uint", dwDesiredAccess)
if hr
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICImagingFactory_CreateEncoder(this, guidContainerFormat, pguidVendor, ByRef ppIEncoder)
{
hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", WIC_GUID(GUID1, guidContainerFormat), "ptr", WIC_GUID(GUID2, pguidVendor), "ptr*", ppIEncoder)
if hr
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapEncoder_Initialize(this, pIStream, cacheOption)
{
hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIStream, "int", cacheOption)
if hr
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapEncoder_CreateNewFrame(this, ByRef ppIFrameEncode, ppIEncoderOptions := 0)
{
hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFrameEncode, "ptr*", ppIEncoderOptions)
if hr
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapEncoder_Commit(this)
{
hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this)
if hr
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_Initialize(this, pIEncoderOptions := 0)
{
hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIEncoderOptions)
if hr
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_SetSize(this, uiWidth, uiHeight)
{
hr := DllCall(NumGet(NumGet(this+0)+4*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight)
if hr
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_WritePixels(this, lineCount, cbStride, cbBufferSize, pbPixels)
{
hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "uint", lineCount, "uint", cbStride, "uint", cbBufferSize, "ptr", pbPixels)
if hr
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_Commit(this)
{
hr := DllCall(NumGet(NumGet(this+0)+12*A_PtrSize), "ptr", this)
if hr
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICBitmapFrameEncode_WriteSource(this, pIBitmapSource, prc)
{
hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this, "ptr", pIBitmapSource, "ptr", prc)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICImagingFactory_CreateBitmapFromMemory(this, uiWidth, uiHeight, pixelFormat, cbStride, cbBufferSize, pbBuffer, ByRef ppIBitmap)
{
hr := DllCall(NumGet(NumGet(this+0)+20*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight, "ptr", pixelFormat, "uint", cbStride, "uint", cbBufferSize, "ptr", pbBuffer, "ptr*", ppIBitmap)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICFormatConverter_Initialize(this, pISource, dstFormat, dither, pIPalette, alphaThresholdPercent, paletteTranslate)
{
dstFormat := WIC_GUID(GUID, dstFormat)
hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", pISource, "ptr", dstFormat, "uint", dither, "ptr", pIPalette, "double", alphaThresholdPercent, "uint", alphaThresholdPercent)
if hr or ErrorLevel
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel)
}
IWICFormatConverter_CanConvert(this, srcPixelFormat, dstPixelFormat)
{
hr := DllCall(NumGet(NumGet(this+0)+9*A_PtrSize), "ptr", this, "ptr", srcPixelFormat, "ptr", dstPixelFormat, "ptr*", pfCanConvert)
if hr or ErrorLevel or !pfCanConvert
_Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel "`npfCanConvert=0")
}
IWICBitmapFrameEncode_SetPixelFormat(this, ByRef pPixelFormat)
{
hr := DllCall(NumGet(NumGet(this+0)+6*A_PtrSize), "ptr", this, "ptr*", pPixelFormat)
if hr
_Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel)
}
WIC_GUID(ByRef GUID,name){
static init:=1,_:={}
if init {
init:=0
; Decoders
_.CLSID_WICBmpDecoder:=[0x6b462062, 0x7cbf, 0x400d, 0x9f, 0xdb, 0x81, 0x3d, 0xd1, 0xf, 0x27, 0x78]
,_.CLSID_WICPngDecoder:=[0x389ea17b, 0x5078, 0x4cde, 0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51]
,_.CLSID_WICIcoDecoder:=[0xc61bfcdf, 0x2e0f, 0x4aad, 0xa8, 0xd7, 0xe0, 0x6b, 0xaf, 0xeb, 0xcd, 0xfe]
,_.CLSID_WICJpegDecoder:=[0x9456a480, 0xe88b, 0x43ea, 0x9e, 0x73, 0xb, 0x2d, 0x9b, 0x71, 0xb1, 0xca]
,_.CLSID_WICGifDecoder:=[0x381dda3c, 0x9ce9, 0x4834, 0xa2, 0x3e, 0x1f, 0x98, 0xf8, 0xfc, 0x52, 0xbe]
,_.CLSID_WICTiffDecoder:=[0xb54e85d9, 0xfe23, 0x499f, 0x8b, 0x88, 0x6a, 0xce, 0xa7, 0x13, 0x75, 0x2b]
,_.CLSID_WICWmpDecoder:=[0xa26cec36, 0x234c, 0x4950, 0xae, 0x16, 0xe3, 0x4a, 0xac, 0xe7, 0x1d, 0x0d]
; Encoders
_.CLSID_WICBmpEncoder:=[0x69be8bb4, 0xd66d, 0x47c8, 0x86, 0x5a, 0xed, 0x15, 0x89, 0x43, 0x37, 0x82]
,_.CLSID_WICPngEncoder:=[0x27949969, 0x876a, 0x41d7, 0x94, 0x47, 0x56, 0x8f, 0x6a, 0x35, 0xa4, 0xdc]
,_.CLSID_WICJpegEncoder:=[0x1a34f5c1, 0x4a5a, 0x46dc, 0xb6, 0x44, 0x1f, 0x45, 0x67, 0xe7, 0xa6, 0x76]
,_.CLSID_WICGifEncoder:=[0x114f5598, 0xb22, 0x40a0, 0x86, 0xa1, 0xc8, 0x3e, 0xa4, 0x95, 0xad, 0xbd]
,_.CLSID_WICTiffEncoder:=[0x0131be10, 0x2001, 0x4c5f, 0xa9, 0xb0, 0xcc, 0x88, 0xfa, 0xb6, 0x4c, 0xe8]
,_.CLSID_WICWmpEncoder:=[0xac4ce3cb, 0xe1c1, 0x44cd, 0x82, 0x15, 0x5a, 0x16, 0x65, 0x50, 0x9e, 0xc2]
; Container Formats
_.GUID_ContainerFormatBmp:=[0xaf1d87e, 0xfcfe, 0x4188, 0xbd, 0xeb, 0xa7, 0x90, 0x64, 0x71, 0xcb, 0xe3]
,_.GUID_ContainerFormatPng:=[0x1b7cfaf4, 0x713f, 0x473c, 0xbb, 0xcd, 0x61, 0x37, 0x42, 0x5f, 0xae, 0xaf]
,_.GUID_ContainerFormatIco:=[0xa3a860c4, 0x338f, 0x4c17, 0x91, 0x9a, 0xfb, 0xa4, 0xb5, 0x62, 0x8f, 0x21]
,_.GUID_ContainerFormatJpeg:=[0x19e4a5aa, 0x5662, 0x4fc5, 0xa0, 0xc0, 0x17, 0x58, 0x2, 0x8e, 0x10, 0x57]
,_.GUID_ContainerFormatTiff:=[0x163bcc30, 0xe2e9, 0x4f0b, 0x96, 0x1d, 0xa3, 0xe9, 0xfd, 0xb7, 0x88, 0xa3]
,_.GUID_ContainerFormatGif:=[0x1f8a5601, 0x7d4d, 0x4cbd, 0x9c, 0x82, 0x1b, 0xc8, 0xd4, 0xee, 0xb9, 0xa5]
,_.GUID_ContainerFormatWmp:=[0x57a37caa, 0x367a, 0x4540, 0x91, 0x6b, 0xf1, 0x83, 0xc5, 0x09, 0x3a, 0x4b]
; Component Identifiers
_.CLSID_WICImagingCategories:=[0xfae3d380, 0xfea4, 0x4623, 0x8c, 0x75, 0xc6, 0xb6, 0x11, 0x10, 0xb6, 0x81]
,_.CATID_WICBitmapDecoders:=[0x7ed96837, 0x96f0, 0x4812, 0xb2, 0x11, 0xf1, 0x3c, 0x24, 0x11, 0x7e, 0xd3]
,_.CATID_WICBitmapEncoders:=[0xac757296, 0x3522, 0x4e11, 0x98, 0x62, 0xc1, 0x7b, 0xe5, 0xa1, 0x76, 0x7e]
,_.CATID_WICPixelFormats:=[0x2b46e70f, 0xcda7, 0x473e, 0x89, 0xf6, 0xdc, 0x96, 0x30, 0xa2, 0x39, 0x0b]
,_.CATID_WICFormatConverters:=[0x7835eae8, 0xbf14, 0x49d1, 0x93, 0xce, 0x53, 0x3a, 0x40, 0x7b, 0x22, 0x48]
,_.CATID_WICMetadataReader:=[0x05af94d8, 0x7174, 0x4cd2, 0xbe, 0x4a, 0x41, 0x24, 0xb8, 0x0e, 0xe4, 0xb8]
,_.CATID_WICMetadataWriter:=[0xabe3b9a4, 0x257d, 0x4b97, 0xbd, 0x1a, 0x29, 0x4a, 0xf4, 0x96, 0x22, 0x2e]
; Format Converters
_.CLSID_WICDefaultFormatConverter:=[0x1a3f11dc, 0xb514, 0x4b17, 0x8c, 0x5f, 0x21, 0x54, 0x51, 0x38, 0x52, 0xf1]
,_.CLSID_WICFormatConverterHighColor:=[0xac75d454, 0x9f37, 0x48f8, 0xb9, 0x72, 0x4e, 0x19, 0xbc, 0x85, 0x60, 0x11]
,_.CLSID_WICFormatConverterNChannel:=[0xc17cabb2, 0xd4a3, 0x47d7, 0xa5, 0x57, 0x33, 0x9b, 0x2e, 0xfb, 0xd4, 0xf1]
,_.CLSID_WICFormatConverterWMPhoto:=[0x9cb5172b, 0xd600, 0x46ba, 0xab, 0x77, 0x77, 0xbb, 0x7e, 0x3a, 0x00, 0xd9]
; Metadata Handlers
_.GUID_MetadataFormatUnknown:=[0xA45E592F, 0x9078, 0x4A7C, 0xAD, 0xB5, 0x4E, 0xDC, 0x4F, 0xD6, 0x1B, 0x1F]
,_.GUID_MetadataFormatIfd:=[0x537396C6, 0x2D8A, 0x4BB6, 0x9B, 0xF8, 0x2F, 0x0A, 0x8E, 0x2A, 0x3A, 0xDF]
,_.GUID_MetadataFormatSubIfd:=[0x58A2E128, 0x2DB9, 0x4E57, 0xBB, 0x14, 0x51, 0x77, 0x89, 0x1E, 0xD3, 0x31]
,_.GUID_MetadataFormatExif:=[0x1C3C4F9D, 0xB84A, 0x467D, 0x94, 0x93, 0x36, 0xCF, 0xBD, 0x59, 0xEA, 0x57]
,_.GUID_MetadataFormatGps:=[0x7134AB8A, 0x9351, 0x44AD, 0xAF, 0x62, 0x44, 0x8D, 0xB6, 0xB5, 0x02, 0xEC]
,_.GUID_MetadataFormatInterop:=[0xED686F8E, 0x681F, 0x4C8B, 0xBD, 0x41, 0xA8, 0xAD, 0xDB, 0xF6, 0xB3, 0xFC]
,_.GUID_MetadataFormatApp0:=[0x79007028, 0x268D, 0x45d6, 0xA3, 0xC2, 0x35, 0x4E, 0x6A, 0x50, 0x4B, 0xC9]
,_.GUID_MetadataFormatApp1:=[0x8FD3DFC3, 0xF951, 0x492B, 0x81, 0x7F, 0x69, 0xC2, 0xE6, 0xD9, 0xA5, 0xB0]
,_.GUID_MetadataFormatApp13:=[0x326556A2, 0xF502, 0x4354, 0x9C, 0xC0, 0x8E, 0x3F, 0x48, 0xEA, 0xF6, 0xB5]
,_.GUID_MetadataFormatIPTC:=[0x4FAB0914, 0xE129, 0x4087, 0xA1, 0xD1, 0xBC, 0x81, 0x2D, 0x45, 0xA7, 0xB5]
,_.GUID_MetadataFormatIRB:=[0x16100D66, 0x8570, 0x4BB9, 0xB9, 0x2D, 0xFD, 0xA4, 0xB2, 0x3E, 0xCE, 0x67]
,_.GUID_MetadataFormat8BIMIPTC:=[0x0010568c, 0x0852, 0x4e6a, 0xb1, 0x91, 0x5c, 0x33, 0xac, 0x5b, 0x04, 0x30]
,_.GUID_MetadataFormat8BIMResolutionInfo:=[0x739F305D, 0x81DB, 0x43CB, 0xAC, 0x5E, 0x55, 0x01, 0x3E, 0xF9, 0xF0, 0x03]
_.GUID_MetadataFormat8BIMIPTCDigest:=[0x1CA32285, 0x9CCD, 0x4786, 0x8B, 0xD8, 0x79, 0x53, 0x9D, 0xB6, 0xA0, 0x06]
,_.GUID_MetadataFormatXMP:=[0xBB5ACC38, 0xF216, 0x4CEC, 0xA6, 0xC5, 0x5F, 0x6E, 0x73, 0x97, 0x63, 0xA9]
,_.GUID_MetadataFormatThumbnail:=[0x243dcee9, 0x8703, 0x40ee, 0x8e, 0xf0, 0x22, 0xa6, 0x0, 0xb8, 0x5, 0x8c]
,_.GUID_MetadataFormatChunktEXt:=[0x568d8936, 0xc0a9, 0x4923, 0x90, 0x5d, 0xdf, 0x2b, 0x38, 0x23, 0x8f, 0xbc]
,_.GUID_MetadataFormatXMPStruct:=[0x22383CF1, 0xED17, 0x4E2E, 0xAF, 0x17, 0xD8, 0x5B, 0x8F, 0x6B, 0x30, 0xD0]
,_.GUID_MetadataFormatXMPBag:=[0x833CCA5F, 0xDCB7, 0x4516, 0x80, 0x6F, 0x65, 0x96, 0xAB, 0x26, 0xDC, 0xE4]
,_.GUID_MetadataFormatXMPSeq:=[0x63E8DF02, 0xEB6C,0x456C, 0xA2, 0x24, 0xB2, 0x5E, 0x79, 0x4F, 0xD6, 0x48]
,_.GUID_MetadataFormatXMPAlt:=[0x7B08A675, 0x91AA, 0x481B, 0xA7, 0x98, 0x4D, 0xA9, 0x49, 0x08, 0x61, 0x3B]
,_.GUID_MetadataFormatLSD:=[0xE256031E, 0x6299, 0x4929, 0xB9, 0x8D, 0x5A, 0xC8, 0x84, 0xAF, 0xBA, 0x92]
,_.GUID_MetadataFormatIMD:=[0xBD2BB086, 0x4D52, 0x48DD, 0x96, 0x77, 0xDB, 0x48, 0x3E, 0x85, 0xAE, 0x8F]
,_.GUID_MetadataFormatGCE:=[0x2A25CAD8, 0xDEEB, 0x4C69, 0xA7, 0x88, 0xE, 0xC2, 0x26, 0x6D, 0xCA, 0xFD]
,_.GUID_MetadataFormatAPE:=[0x2E043DC2, 0xC967, 0x4E05, 0x87, 0x5E, 0x61, 0x8B, 0xF6, 0x7E, 0x85, 0xC3]
_.GUID_MetadataFormatJpegChrominance:=[0xF73D0DCF, 0xCEC6, 0x4F85, 0x9B, 0x0E, 0x1C, 0x39, 0x56, 0xB1, 0xBE, 0xF7]
,_.GUID_MetadataFormatJpegLuminance:=[0x86908007, 0xEDFC, 0x4860, 0x8D, 0x4B, 0x4E, 0xE6, 0xE8, 0x3E, 0x60, 0x58]
,_.GUID_MetadataFormatJpegComment:=[0x220E5F33, 0xAFD3, 0x474E, 0x9D, 0x31, 0x7D, 0x4F, 0xE7, 0x30, 0xF5, 0x57]
,_.GUID_MetadataFormatGifComment:=[0xC4B6E0E0, 0xCFB4, 0x4AD3, 0xAB, 0x33, 0x9A, 0xAD, 0x23, 0x55, 0xA3, 0x4A]
,_.GUID_MetadataFormatChunkgAMA:=[0xF00935A5, 0x1D5D, 0x4CD1, 0x81, 0xB2, 0x93, 0x24, 0xD7, 0xEC, 0xA7, 0x81]
,_.GUID_MetadataFormatChunkbKGD:=[0xE14D3571, 0x6B47, 0x4DEA, 0xB6, 0xA, 0x87, 0xCE, 0xA, 0x78, 0xDF, 0xB7]
,_.GUID_MetadataFormatChunkiTXt:=[0xC2BEC729, 0xB68, 0x4B77, 0xAA, 0xE, 0x62, 0x95, 0xA6, 0xAC, 0x18, 0x14]
,_.GUID_MetadataFormatChunkcHRM:=[0x9DB3655B, 0x2842, 0x44B3, 0x80, 0x67, 0x12, 0xE9, 0xB3, 0x75, 0x55, 0x6A]
,_.GUID_MetadataFormatChunkhIST:=[0xC59A82DA, 0xDB74, 0x48A4, 0xBD, 0x6A, 0xB6, 0x9C, 0x49, 0x31, 0xEF, 0x95]
,_.GUID_MetadataFormatChunkiCCP:=[0xEB4349AB, 0xB685, 0x450F, 0x91, 0xB5, 0xE8, 0x2, 0xE8, 0x92, 0x53, 0x6C]
,_.GUID_MetadataFormatChunksRGB:=[0xC115FD36, 0xCC6F, 0x4E3F, 0x83, 0x63, 0x52, 0x4B, 0x87, 0xC6, 0xB0, 0xD9]
,_.GUID_MetadataFormatChunktIME:=[0x6B00AE2D, 0xE24B, 0x460A, 0x98, 0xB6, 0x87, 0x8B, 0xD0, 0x30, 0x72, 0xFD]
; Vendor Identification
_.GUID_VendorMicrosoft:=[0x69fd0fdc, 0xa866, 0x4108, 0xb3, 0xb2, 0x98, 0x44, 0x7f, 0xa9, 0xed, 0xd4]
,_.GUID_VendorMicrosoftBuiltIn:=[0x257a30fd, 0x6b6, 0x462b, 0xae, 0xa4, 0x63, 0xf7, 0xb, 0x86, 0xe5, 0x33]
; WICBitmapPaletteType
_.GUID_WICPixelFormatDontCare:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x00]
,_.GUID_WICPixelFormat1bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x01]
,_.GUID_WICPixelFormat2bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x02]
,_.GUID_WICPixelFormat4bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x03]
,_.GUID_WICPixelFormat8bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x04]
,_.GUID_WICPixelFormatBlackWhite:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x05]
,_.GUID_WICPixelFormat2bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x06]
,_.GUID_WICPixelFormat4bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x07]
,_.GUID_WICPixelFormat8bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x08]
,_.GUID_WICPixelFormat8bppAlpha:=[0xe6cd0116, 0xeeba, 0x4161, 0xaa, 0x85, 0x27, 0xdd, 0x9f, 0xb3, 0xa8, 0x95]
,_.GUID_WICPixelFormat16bppBGR555:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x09]
,_.GUID_WICPixelFormat16bppBGR565:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0a]
,_.GUID_WICPixelFormat16bppBGRA5551:=[0x05ec7c2b, 0xf1e6, 0x4961, 0xad, 0x46, 0xe1, 0xcc, 0x81, 0x0a, 0x87, 0xd2]
_.GUID_WICPixelFormat16bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0b]
,_.GUID_WICPixelFormat24bppBGR:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0c]
,_.GUID_WICPixelFormat24bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0d]
,_.GUID_WICPixelFormat32bppBGR:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0e]
,_.GUID_WICPixelFormat32bppBGRA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0f]
,_.GUID_WICPixelFormat32bppPBGRA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x10]
,_.GUID_WICPixelFormat32bppGrayFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x11]
,_.GUID_WICPixelFormat32bppRGBA:=[0xf5c7ad2d, 0x6a8d, 0x43dd, 0xa7, 0xa8, 0xa2, 0x99, 0x35, 0x26, 0x1a, 0xe9]
,_.GUID_WICPixelFormat32bppPRGBA:=[0x3cc4a650, 0xa527, 0x4d37, 0xa9, 0x16, 0x31, 0x42, 0xc7, 0xeb, 0xed, 0xba]
,_.GUID_WICPixelFormat48bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x15]
,_.GUID_WICPixelFormat48bppBGR:=[0xe605a384, 0xb468, 0x46ce, 0xbb, 0x2e, 0x36, 0xf1, 0x80, 0xe6, 0x43, 0x13]
,_.GUID_WICPixelFormat64bppRGBA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x16]
,_.GUID_WICPixelFormat64bppBGRA:=[ 0x1562ff7c, 0xd352, 0x46f9, 0x97, 0x9e, 0x42, 0x97, 0x6b, 0x79, 0x22, 0x46]
_.GUID_WICPixelFormat64bppPRGBA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x17]
,_.GUID_WICPixelFormat64bppPBGRA:=[0x8c518e8e, 0xa4ec, 0x468b, 0xae, 0x70, 0xc9, 0xa3, 0x5a, 0x9c, 0x55, 0x30]
,_.GUID_WICPixelFormat16bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x13]
,_.GUID_WICPixelFormat32bppBGR101010:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x14]
,_.GUID_WICPixelFormat48bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x12]
,_.GUID_WICPixelFormat48bppBGRFixedPoint:=[0x49ca140e, 0xcab6, 0x493b, 0x9d, 0xdf, 0x60, 0x18, 0x7c, 0x37, 0x53, 0x2a]
,_.GUID_WICPixelFormat96bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x18]
,_.GUID_WICPixelFormat128bppRGBAFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x19]
,_.GUID_WICPixelFormat128bppPRGBAFloat:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1a]
,_.GUID_WICPixelFormat128bppRGBFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1b]
,_.GUID_WICPixelFormat32bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1c]
,_.GUID_WICPixelFormat64bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1d]
,_.GUID_WICPixelFormat64bppBGRAFixedPoint:=[0x356de33c, 0x54d2, 0x4a23, 0xbb, 0x4, 0x9b, 0x7b, 0xf9, 0xb1, 0xd4, 0x2d]
_.GUID_WICPixelFormat64bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x40]
,_.GUID_WICPixelFormat128bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1e]
,_.GUID_WICPixelFormat128bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x41]
,_.GUID_WICPixelFormat64bppRGBAHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3a]
,_.GUID_WICPixelFormat64bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x42]
,_.GUID_WICPixelFormat48bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3b]
,_.GUID_WICPixelFormat32bppRGBE:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3d]
,_.GUID_WICPixelFormat16bppGrayHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3e]
,_.GUID_WICPixelFormat32bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3f]
,_.GUID_WICPixelFormat32bppRGBA1010102:=[0x25238D72, 0xFCF9, 0x4522, 0xb5, 0x14, 0x55, 0x78, 0xe5, 0xad, 0x55, 0xe0]
,_.GUID_WICPixelFormat32bppRGBA1010102XR:=[0x00DE6B9A, 0xC101, 0x434b, 0xb5, 0x02, 0xd0, 0x16, 0x5e, 0xe1, 0x12, 0x2c]
,_.GUID_WICPixelFormat64bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1f]
,_.GUID_WICPixelFormat24bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x20]
_.GUID_WICPixelFormat32bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x21]
,_.GUID_WICPixelFormat40bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x22]
,_.GUID_WICPixelFormat48bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x23]
,_.GUID_WICPixelFormat56bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x24]
,_.GUID_WICPixelFormat64bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x25]
,_.GUID_WICPixelFormat48bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x26]
,_.GUID_WICPixelFormat64bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x27]
,_.GUID_WICPixelFormat80bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x28]
,_.GUID_WICPixelFormat96bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x29]
,_.GUID_WICPixelFormat112bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2a]
,_.GUID_WICPixelFormat128bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2b]
,_.GUID_WICPixelFormat40bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2c]
,_.GUID_WICPixelFormat80bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2d]
,_.GUID_WICPixelFormat32bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2e]
_.GUID_WICPixelFormat40bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2f]
,_.GUID_WICPixelFormat48bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x30]
,_.GUID_WICPixelFormat56bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x31]
,_.GUID_WICPixelFormat64bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x32]
,_.GUID_WICPixelFormat72bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x33]
,_.GUID_WICPixelFormat64bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x34]
,_.GUID_WICPixelFormat80bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x35]
,_.GUID_WICPixelFormat96bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x36]
,_.GUID_WICPixelFormat112bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x37]
,_.GUID_WICPixelFormat128bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x38]
,_.GUID_WICPixelFormat144bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x39]
}
if _.haskey(name){
p:=_[name]
VarSetCapacity(GUID,16)
,NumPut(p.1+(p.2<<32)+(p.3<<48),GUID,0,"int64")
,NumPut(p.4+(p.5<<8)+(p.6<<16)+(p.7<<24)+(p.8<<32)+(p.9<<40)+(p.10<<48)+(p.11<<56),GUID,8,"int64")
return &GUID
}else return name
}
WIC_hr(a){
static init:=1,err:={0x8000FFFF:"Catastrophic failure error.",0x80004001:"Not implemented error.",0x8007000E:"Out of memory error.",0x80070057:"One or more arguments are not valid error.",0x80004002:"Interface not supported error.",0x80004003:"Pointer not valid error.",0x80070006:"Handle not valid error.",0x80004004:"Operation aborted error.",0x80004005:"Unspecified error.",0x80070005:"General access denied error.",0x800401E5:"The object identified by this moniker could not be found."}
if init{
init:=0
err[0x80004005]:="WINCODEC_ERR_GENERIC_ERROR"
,err[0x80070057]:="WINCODEC_ERR_INVALIDPARAMETER"
,err[0x8007000E]:="WINCODEC_ERR_OUTOFMEMORY"
,err[0x80004001]:="WINCODEC_ERR_NOTIMPLEMENTED"
,err[0x80004004]:="WINCODEC_ERR_ABORTED"
,err[0x80070005]:="WINCODEC_ERR_ACCESSDENIED"
,err[0x88982f04]:="WINCODEC_ERR_WRONGSTATE"
,err[0x88982f05]:="WINCODEC_ERR_VALUEOUTOFRANGE"
,err[0x88982f07]:="WINCODEC_ERR_UNKNOWNIMAGEFORMAT"
,err[0x88982f0B]:="WINCODEC_ERR_UNSUPPORTEDVERSION"
,err[0x88982f0C]:="WINCODEC_ERR_NOTINITIALIZED"
,err[0x88982f0D]:="WINCODEC_ERR_ALREADYLOCKED"
,err[0x88982f40]:="WINCODEC_ERR_PROPERTYNOTFOUND"
,err[0x88982f41]:="WINCODEC_ERR_PROPERTYNOTSUPPORTED"
,err[0x88982f42]:="WINCODEC_ERR_PROPERTYSIZE"
,err[0x88982f43]:="WINCODEC_ERR_CODECPRESENT"
,err[0x88982f44]:="WINCODEC_ERR_CODECNOTHUMBNAIL"
,err[0x88982f45]:="WINCODEC_ERR_PALETTEUNAVAILABLE"
,err[0x88982f46]:="WINCODEC_ERR_CODECTOOMANYSCANLINES"
,err[0x88982f48]:="WINCODEC_ERR_INTERNALERROR"
,err[0x88982f49]:="WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS"
,err[0x88982f50]:="WINCODEC_ERR_COMPONENTNOTFOUND"
err[0x88982f51]:="WINCODEC_ERR_IMAGESIZEOUTOFRANGE"
,err[0x88982f52]:="WINCODEC_ERR_TOOMUCHMETADATA"
,err[0x88982f60]:="WINCODEC_ERR_BADIMAGE"
,err[0x88982f61]:="WINCODEC_ERR_BADHEADER"
,err[0x88982f62]:="WINCODEC_ERR_FRAMEMISSING"
,err[0x88982f63]:="WINCODEC_ERR_BADMETADATAHEADER"
,err[0x88982f70]:="WINCODEC_ERR_BADSTREAMDATA"
,err[0x88982f71]:="WINCODEC_ERR_STREAMWRITE"
,err[0x88982f72]:="WINCODEC_ERR_STREAMREAD"
,err[0x88982f73]:="WINCODEC_ERR_STREAMNOTAVAILABLE"
,err[0x88982f80]:="WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT"
,err[0x88982f81]:="WINCODEC_ERR_UNSUPPORTEDOPERATION"
,err[0x88982f8A]:="WINCODEC_ERR_INVALIDREGISTRATION"
,err[0x88982f8B]:="WINCODEC_ERR_COMPONENTINITIALIZEFAILURE"
,err[0x88982f8C]:="WINCODEC_ERR_INSUFFICIENTBUFFER"
,err[0x88982f8D]:="WINCODEC_ERR_DUPLICATEMETADATAPRESENT"
,err[0x88982f8E]:="WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE"
,err[0x88982f8F]:="WINCODEC_ERR_UNEXPECTEDSIZE"
,err[0x88982f90]:="WINCODEC_ERR_INVALIDQUERYREQUEST"
,err[0x88982f91]:="WINCODEC_ERR_UNEXPECTEDMETADATATYPE"
,err[0x88982f92]:="WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT"
,err[0x88982f93]:="WINCODEC_ERR_INVALIDQUERYCHARACTER"
}
if a && (a&=0xFFFFFFFF)
{
if err.haskey(a)
return err[a]
}
return a
}
- manehscripts
- Posts: 126
- Joined: 03 May 2019, 16:10
Re: Anti-cheat black screen
Hi, thanks again.malcev wrote: ↑11 Jul 2020, 06:04You need change hwnd to Your window, run this code.
If image will be not ok, then try to disable harware acceleration in Your program.
If You cannot disable harware acceleration, then You need to inject dll and hook Your target program.Code: Select all
file := "file.bmp" ; can be: png, bmp, jpg, tiff, gif captureHwnd := 0x917ea setbatchlines -1 formatGuid := WIC_GUID(GUID, "GUID_WICPixelFormat32bppBGRA") Extension := RegexReplace(file, "^.+\.") if (Extension = "png") ContainerFormat := "GUID_ContainerFormatPng" else if (Extension = "bmp") ContainerFormat := "GUID_ContainerFormatBmp" else if (Extension = "jpg") ContainerFormat := "GUID_ContainerFormatJpeg" else if (Extension = "tiff") ContainerFormat := "GUID_ContainerFormatTiff" else if (Extension = "gif") ContainerFormat := "GUID_ContainerFormatGif" else { msgbox extension %Extension% cannot use ExitApp } LOAD_DLL_D3D11_DXGI_DWMAPI() GrantedCapacity := VarSetCapacity(D3D_FEATURE_LEVEL, 8, 0) NumPut(D3D_FEATURE_LEVEL_11_0 := 0xb000, D3D_FEATURE_LEVEL, 0, "uint") NumPut(D3D_FEATURE_LEVEL_10_1 := 0xa100, D3D_FEATURE_LEVEL, 4, "uint") D3D11CreateDevice(0, D3D_DRIVER_TYPE_HARDWARE := 1, 0, D3D11_CREATE_DEVICE_BGRA_SUPPORT := 0x20, &D3D_FEATURE_LEVEL, GrantedCapacity//4, D3D11_SDK_VERSION := 7, d3d_device, 0, d3d_context) QueryInterface(d3d_device, IID_IDXGIDevice := "{54ec77fa-1377-44e6-8c32-88fd5f44c84c}", dxgiDevice) IDXGIDevice_GetParent(dxgiDevice, IID_IDXGIAdapter := "{2411e7e1-12ac-4ccf-bd14-9798e8534dc0}", adapter) VarSetCapacity(DXGI_ADAPTER_DESC, 280+3*A_PtrSize, 0) IDXGIAdapter_GetDesc(adapter, &DXGI_ADAPTER_DESC) luidAdapter := NumGet(DXGI_ADAPTER_DESC, 272+3*A_PtrSize, "int64") ObjRelease(dxgiDevice) Release(adapter) dxgiDevice := adapter := "" DwmpDxGetWindowSharedSurface(captureHwnd, luidAdapter, 0, DWM_REDIRECTION_FLAG_SUPPORT_PRESENT_TO_GDI_SURFACE := 0x10, pfmtWindow, phDxSurface, puiUpdateId) DwmpDxUpdateWindowSharedSurface(captureHwnd, puiUpdateId, 0, 0, 0) ID3D11Device_OpenSharedResource(d3d_device, phDxSurface, ID3D11Resource := "{dc8e63f3-d12b-4952-b47b-5e45026a862d}", resource) QueryInterface(resource, IID_ID3D11Texture2D := "{6f15aaf2-d208-4e89-9ab4-489535d34f9c}", d3d11Tex) VarSetCapacity(D3D11_TEXTURE2D_DESC, 44, 0) ID3D11Texture2D_GetDesc(d3d11Tex, &D3D11_TEXTURE2D_DESC) Width := NumGet(D3D11_TEXTURE2D_DESC, 0, "int") Height := NumGet(D3D11_TEXTURE2D_DESC, 4, "int") NumPut(1, D3D11_TEXTURE2D_DESC, 8, "uint") ; MipLevels NumPut(1, D3D11_TEXTURE2D_DESC, 12, "uint") ; ArraySize NumPut(DXGI_FORMAT_B8G8R8A8_UNORM := 87, D3D11_TEXTURE2D_DESC, 16, "uint") ; Format NumPut(1, D3D11_TEXTURE2D_DESC, 20, "uint") ; SampleDescCount NumPut(0, D3D11_TEXTURE2D_DESC, 24, "uint") ; SampleDescQuality NumPut(D3D11_USAGE_STAGING := 3, D3D11_TEXTURE2D_DESC, 28, "uint") ; Usage NumPut(0, D3D11_TEXTURE2D_DESC, 32, "uint") ; BindFlags NumPut(D3D11_CPU_ACCESS_READ := 0x20000, D3D11_TEXTURE2D_DESC, 36, "uint") ; CPUAccessFlags NumPut(0, D3D11_TEXTURE2D_DESC, 40, "uint") ; MiscFlags ID3D11Device_CreateTexture2D(d3d_device, &D3D11_TEXTURE2D_DESC, 0, staging_tex) Release(d3d_device) Release(resource) d3d_device := resource := "" loop 1 { ID3D11DeviceContext_CopyResource(d3d_context, staging_tex, d3d11Tex) VarSetCapacity(D3D11_MAPPED_SUBRESOURCE, 8+A_PtrSize, 0) ID3D11DeviceContext_Map(d3d_context, staging_tex, 0, D3D11_MAP_READ := 1, 0, &D3D11_MAPPED_SUBRESOURCE) pBits := NumGet(D3D11_MAPPED_SUBRESOURCE, 0, "ptr") pitch := NumGet(D3D11_MAPPED_SUBRESOURCE, A_PtrSize, "uint") if !wic wic := IWICCreate() IWICImagingFactory_CreateStream(wic, stream) IWICStream_InitializeFromFilename(stream, file, GENERIC_WRITE := 0x40000000) IWICImagingFactory_CreateEncoder(wic, ContainerFormat, 0, encoder) IWICBitmapEncoder_Initialize(encoder, stream, WICBitmapEncoderNoCache := 0x2) IWICBitmapEncoder_CreateNewFrame(encoder, frame) IWICBitmapFrameEncode_Initialize(frame) IWICBitmapFrameEncode_SetSize(frame, width, height) IWICImagingFactory_CreateFormatConverter(wic, FormatConverter) IWICImagingFactory_CreateBitmapFromMemory(wic, width, height, formatGuid, pitch, pitch * height, pBits, Bitmap) IWICFormatConverter_Initialize(FormatConverter, Bitmap, "GUID_WICPixelFormat24bppBGR", WICBitmapDitherTypeNone := 0, 0, 0, WICBitmapPaletteTypeMedianCut := 0x1) IWICBitmapFrameEncode_SetPixelFormat(frame, formatGuid) VarSetCapacity(Rect, 16, 0) NumPut(width, Rect, 8, "int") NumPut(height, Rect, 12, "int") IWICBitmapFrameEncode_WriteSource(frame, FormatConverter, &Rect) Release(FormatConverter) Release(Bitmap) FormatConverter := Bitmap := "" IWICBitmapFrameEncode_Commit(frame) IWICBitmapEncoder_Commit(encoder) Release(stream) Release(frame) Release(encoder) stream := frame := encoder := "" ID3D11DeviceContext_Unmap(d3d_context, staging_tex, 0) } msgbox done ExitApp DwmpDxGetWindowSharedSurface(hwnd, luidAdapter, hmonitorAssociation, dwFlags, ByRef pfmtWindow, ByRef phDxSurface, ByRef puiUpdateId) { hr := DllCall("dwmapi.dll\DwmpDxGetWindowSharedSurface", "ptr", hwnd, "int64", luidAdapter, "ptr", hmonitorAssociation, "uint", dwFlags, "uint*", pfmtWindow, "ptr*", phDxSurface, "int64*", puiUpdateId) if (hr != 0x00263005) or ErrorLevel ; DWM_S_GDI_REDIRECTION_SURFACE _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } DwmpDxUpdateWindowSharedSurface(hwnd, uiUpdateId, dwFlags, hmonitorAssociation, prc) { hr := DllCall("dwmapi.dll\DwmpDxUpdateWindowSharedSurface", "ptr", hwnd, "int64", uiUpdateId, "int", dwFlags, "ptr", hmonitorAssociation, "ptr", prc) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } D3D11CreateDevice(pAdapter, DriverType, Software, Flags, pFeatureLevels, FeatureLevels, SDKVersion, ByRef ppDevice, ByRef pFeatureLevel, ByRef ppImmediateContext) { hr := DllCall("D3D11\D3D11CreateDevice", "ptr", pAdapter, "int", DriverType, "ptr", Software, "uint", Flags, "ptr", pFeatureLevels, "uint", FeatureLevels, "uint", SDKVersion, "ptr*", ppDevice, "ptr*", pFeatureLevel, "ptr*", ppImmediateContext) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11Texture2D_GetDesc(this, pDesc) { DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr", pDesc) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11Device_CreateTexture2D(this, pDesc, pInitialData, ByRef ppTexture2D) { hr := DllCall(NumGet(NumGet(this+0)+5*A_PtrSize), "ptr", this, "ptr", pDesc, "ptr", pInitialData, "ptr*", ppTexture2D) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11DeviceContext_CopyResource(this, pDstResource, pSrcResource) { hr := DllCall(NumGet(NumGet(this+0)+47*A_PtrSize), "ptr", this, "ptr", pDstResource, "ptr", pSrcResource) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11Device_OpenSharedResource(this, phDxSurface, MIDL_INTERFACE, ByRef ppResource) { GUID(riid, MIDL_INTERFACE) hr := DllCall(NumGet(NumGet(this+0)+28*A_PtrSize), "ptr", this, "ptr", phDxSurface, "ptr", &riid, "ptr*", ppResource) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11DeviceContext_Map(this, pResource, Subresource, MapType, MapFlags, pMappedResource) { hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize), "ptr", this, "ptr", pResource, "uint", Subresource, "uint", MapType, "uint", MapFlags, "ptr", pMappedResource) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } ID3D11DeviceContext_Unmap(this, pResource, Subresource) { hr := DllCall(NumGet(NumGet(this+0)+15*A_PtrSize), "ptr", this, "ptr", pResource, "uint", Subresource) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } IDXGIAdapter_GetDesc(this, pDesc) { hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", pDesc) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } IDXGIDevice_GetParent(this, MIDL_INTERFACE, ByRef ppParent) { GUID(riid, MIDL_INTERFACE) hr := DllCall(NumGet(NumGet(this+0)+6*A_PtrSize), "ptr", this, "ptr", &riid, "ptr*", ppParent) if hr or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } QueryInterface(ComObject, SID, ByRef InterfacePointer) { InterfacePointer := ComObjQuery(ComObject, SID) if !InterfacePointer or ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } Release(this) { DllCall(NumGet(NumGet(this+0)+2*A_PtrSize), "ptr", this) if ErrorLevel _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } GUID(ByRef GUID, sGUID) { VarSetCapacity(GUID, 16, 0) return DllCall("ole32\CLSIDFromString", "WStr", sGUID, "Ptr", &GUID) >= 0 ? &GUID : "" } LOAD_DLL_D3D11_DXGI_DWMAPI() { if !DllCall("GetModuleHandle","str","DXGI") DllCall("LoadLibrary","str","DXGI") if !DllCall("GetModuleHandle","str","D3D11") DllCall("LoadLibrary","str","D3D11") if !DllCall("GetModuleHandle","str","dwmapi") DllCall("LoadLibrary","str","dwmapi.dll") } _Error(val) { msgbox % val ExitApp } IWICCreate() { return ComObjCreate("{cacaf262-9370-4615-a13b-9f5539da4c0a}", "{ec5ec8a9-c395-4314-9c77-54d7a935ff70}") } IWICImagingFactory_CreateStream(this, ByRef ppIWICStream) { hr := DllCall(NumGet(NumGet(this+0)+14*A_PtrSize), "ptr", this, "ptr*", ppIWICStream) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICImagingFactory_CreateFormatConverter(this, ByRef ppIFormatConverter) { hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFormatConverter) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICStream_InitializeFromFilename(this, wzFileName, dwDesiredAccess) { hr := DllCall(NumGet(NumGet(this+0)+15*A_PtrSize), "ptr", this, "str", wzFileName, "uint", dwDesiredAccess) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICImagingFactory_CreateEncoder(this, guidContainerFormat, pguidVendor, ByRef ppIEncoder) { hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", WIC_GUID(GUID1, guidContainerFormat), "ptr", WIC_GUID(GUID2, pguidVendor), "ptr*", ppIEncoder) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapEncoder_Initialize(this, pIStream, cacheOption) { hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIStream, "int", cacheOption) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapEncoder_CreateNewFrame(this, ByRef ppIFrameEncode, ppIEncoderOptions := 0) { hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "ptr*", ppIFrameEncode, "ptr*", ppIEncoderOptions) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapEncoder_Commit(this) { hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_Initialize(this, pIEncoderOptions := 0) { hr := DllCall(NumGet(NumGet(this+0)+3*A_PtrSize), "ptr", this, "ptr", pIEncoderOptions) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_SetSize(this, uiWidth, uiHeight) { hr := DllCall(NumGet(NumGet(this+0)+4*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_WritePixels(this, lineCount, cbStride, cbBufferSize, pbPixels) { hr := DllCall(NumGet(NumGet(this+0)+10*A_PtrSize), "ptr", this, "uint", lineCount, "uint", cbStride, "uint", cbBufferSize, "ptr", pbPixels) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_Commit(this) { hr := DllCall(NumGet(NumGet(this+0)+12*A_PtrSize), "ptr", this) if hr _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICBitmapFrameEncode_WriteSource(this, pIBitmapSource, prc) { hr := DllCall(NumGet(NumGet(this+0)+11*A_PtrSize), "ptr", this, "ptr", pIBitmapSource, "ptr", prc) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICImagingFactory_CreateBitmapFromMemory(this, uiWidth, uiHeight, pixelFormat, cbStride, cbBufferSize, pbBuffer, ByRef ppIBitmap) { hr := DllCall(NumGet(NumGet(this+0)+20*A_PtrSize), "ptr", this, "uint", uiWidth, "uint", uiHeight, "ptr", pixelFormat, "uint", cbStride, "uint", cbBufferSize, "ptr", pbBuffer, "ptr*", ppIBitmap) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICFormatConverter_Initialize(this, pISource, dstFormat, dither, pIPalette, alphaThresholdPercent, paletteTranslate) { dstFormat := WIC_GUID(GUID, dstFormat) hr := DllCall(NumGet(NumGet(this+0)+8*A_PtrSize), "ptr", this, "ptr", pISource, "ptr", dstFormat, "uint", dither, "ptr", pIPalette, "double", alphaThresholdPercent, "uint", alphaThresholdPercent) if hr or ErrorLevel _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel) } IWICFormatConverter_CanConvert(this, srcPixelFormat, dstPixelFormat) { hr := DllCall(NumGet(NumGet(this+0)+9*A_PtrSize), "ptr", this, "ptr", srcPixelFormat, "ptr", dstPixelFormat, "ptr*", pfCanConvert) if hr or ErrorLevel or !pfCanConvert _Error(A_ThisFunc " error: " WIC_hr(hr) "`nErrorLevel: " ErrorLevel "`npfCanConvert=0") } IWICBitmapFrameEncode_SetPixelFormat(this, ByRef pPixelFormat) { hr := DllCall(NumGet(NumGet(this+0)+6*A_PtrSize), "ptr", this, "ptr*", pPixelFormat) if hr _Error(A_ThisFunc " error: " hr "`nErrorLevel: " ErrorLevel) } WIC_GUID(ByRef GUID,name){ static init:=1,_:={} if init { init:=0 ; Decoders _.CLSID_WICBmpDecoder:=[0x6b462062, 0x7cbf, 0x400d, 0x9f, 0xdb, 0x81, 0x3d, 0xd1, 0xf, 0x27, 0x78] ,_.CLSID_WICPngDecoder:=[0x389ea17b, 0x5078, 0x4cde, 0xb6, 0xef, 0x25, 0xc1, 0x51, 0x75, 0xc7, 0x51] ,_.CLSID_WICIcoDecoder:=[0xc61bfcdf, 0x2e0f, 0x4aad, 0xa8, 0xd7, 0xe0, 0x6b, 0xaf, 0xeb, 0xcd, 0xfe] ,_.CLSID_WICJpegDecoder:=[0x9456a480, 0xe88b, 0x43ea, 0x9e, 0x73, 0xb, 0x2d, 0x9b, 0x71, 0xb1, 0xca] ,_.CLSID_WICGifDecoder:=[0x381dda3c, 0x9ce9, 0x4834, 0xa2, 0x3e, 0x1f, 0x98, 0xf8, 0xfc, 0x52, 0xbe] ,_.CLSID_WICTiffDecoder:=[0xb54e85d9, 0xfe23, 0x499f, 0x8b, 0x88, 0x6a, 0xce, 0xa7, 0x13, 0x75, 0x2b] ,_.CLSID_WICWmpDecoder:=[0xa26cec36, 0x234c, 0x4950, 0xae, 0x16, 0xe3, 0x4a, 0xac, 0xe7, 0x1d, 0x0d] ; Encoders _.CLSID_WICBmpEncoder:=[0x69be8bb4, 0xd66d, 0x47c8, 0x86, 0x5a, 0xed, 0x15, 0x89, 0x43, 0x37, 0x82] ,_.CLSID_WICPngEncoder:=[0x27949969, 0x876a, 0x41d7, 0x94, 0x47, 0x56, 0x8f, 0x6a, 0x35, 0xa4, 0xdc] ,_.CLSID_WICJpegEncoder:=[0x1a34f5c1, 0x4a5a, 0x46dc, 0xb6, 0x44, 0x1f, 0x45, 0x67, 0xe7, 0xa6, 0x76] ,_.CLSID_WICGifEncoder:=[0x114f5598, 0xb22, 0x40a0, 0x86, 0xa1, 0xc8, 0x3e, 0xa4, 0x95, 0xad, 0xbd] ,_.CLSID_WICTiffEncoder:=[0x0131be10, 0x2001, 0x4c5f, 0xa9, 0xb0, 0xcc, 0x88, 0xfa, 0xb6, 0x4c, 0xe8] ,_.CLSID_WICWmpEncoder:=[0xac4ce3cb, 0xe1c1, 0x44cd, 0x82, 0x15, 0x5a, 0x16, 0x65, 0x50, 0x9e, 0xc2] ; Container Formats _.GUID_ContainerFormatBmp:=[0xaf1d87e, 0xfcfe, 0x4188, 0xbd, 0xeb, 0xa7, 0x90, 0x64, 0x71, 0xcb, 0xe3] ,_.GUID_ContainerFormatPng:=[0x1b7cfaf4, 0x713f, 0x473c, 0xbb, 0xcd, 0x61, 0x37, 0x42, 0x5f, 0xae, 0xaf] ,_.GUID_ContainerFormatIco:=[0xa3a860c4, 0x338f, 0x4c17, 0x91, 0x9a, 0xfb, 0xa4, 0xb5, 0x62, 0x8f, 0x21] ,_.GUID_ContainerFormatJpeg:=[0x19e4a5aa, 0x5662, 0x4fc5, 0xa0, 0xc0, 0x17, 0x58, 0x2, 0x8e, 0x10, 0x57] ,_.GUID_ContainerFormatTiff:=[0x163bcc30, 0xe2e9, 0x4f0b, 0x96, 0x1d, 0xa3, 0xe9, 0xfd, 0xb7, 0x88, 0xa3] ,_.GUID_ContainerFormatGif:=[0x1f8a5601, 0x7d4d, 0x4cbd, 0x9c, 0x82, 0x1b, 0xc8, 0xd4, 0xee, 0xb9, 0xa5] ,_.GUID_ContainerFormatWmp:=[0x57a37caa, 0x367a, 0x4540, 0x91, 0x6b, 0xf1, 0x83, 0xc5, 0x09, 0x3a, 0x4b] ; Component Identifiers _.CLSID_WICImagingCategories:=[0xfae3d380, 0xfea4, 0x4623, 0x8c, 0x75, 0xc6, 0xb6, 0x11, 0x10, 0xb6, 0x81] ,_.CATID_WICBitmapDecoders:=[0x7ed96837, 0x96f0, 0x4812, 0xb2, 0x11, 0xf1, 0x3c, 0x24, 0x11, 0x7e, 0xd3] ,_.CATID_WICBitmapEncoders:=[0xac757296, 0x3522, 0x4e11, 0x98, 0x62, 0xc1, 0x7b, 0xe5, 0xa1, 0x76, 0x7e] ,_.CATID_WICPixelFormats:=[0x2b46e70f, 0xcda7, 0x473e, 0x89, 0xf6, 0xdc, 0x96, 0x30, 0xa2, 0x39, 0x0b] ,_.CATID_WICFormatConverters:=[0x7835eae8, 0xbf14, 0x49d1, 0x93, 0xce, 0x53, 0x3a, 0x40, 0x7b, 0x22, 0x48] ,_.CATID_WICMetadataReader:=[0x05af94d8, 0x7174, 0x4cd2, 0xbe, 0x4a, 0x41, 0x24, 0xb8, 0x0e, 0xe4, 0xb8] ,_.CATID_WICMetadataWriter:=[0xabe3b9a4, 0x257d, 0x4b97, 0xbd, 0x1a, 0x29, 0x4a, 0xf4, 0x96, 0x22, 0x2e] ; Format Converters _.CLSID_WICDefaultFormatConverter:=[0x1a3f11dc, 0xb514, 0x4b17, 0x8c, 0x5f, 0x21, 0x54, 0x51, 0x38, 0x52, 0xf1] ,_.CLSID_WICFormatConverterHighColor:=[0xac75d454, 0x9f37, 0x48f8, 0xb9, 0x72, 0x4e, 0x19, 0xbc, 0x85, 0x60, 0x11] ,_.CLSID_WICFormatConverterNChannel:=[0xc17cabb2, 0xd4a3, 0x47d7, 0xa5, 0x57, 0x33, 0x9b, 0x2e, 0xfb, 0xd4, 0xf1] ,_.CLSID_WICFormatConverterWMPhoto:=[0x9cb5172b, 0xd600, 0x46ba, 0xab, 0x77, 0x77, 0xbb, 0x7e, 0x3a, 0x00, 0xd9] ; Metadata Handlers _.GUID_MetadataFormatUnknown:=[0xA45E592F, 0x9078, 0x4A7C, 0xAD, 0xB5, 0x4E, 0xDC, 0x4F, 0xD6, 0x1B, 0x1F] ,_.GUID_MetadataFormatIfd:=[0x537396C6, 0x2D8A, 0x4BB6, 0x9B, 0xF8, 0x2F, 0x0A, 0x8E, 0x2A, 0x3A, 0xDF] ,_.GUID_MetadataFormatSubIfd:=[0x58A2E128, 0x2DB9, 0x4E57, 0xBB, 0x14, 0x51, 0x77, 0x89, 0x1E, 0xD3, 0x31] ,_.GUID_MetadataFormatExif:=[0x1C3C4F9D, 0xB84A, 0x467D, 0x94, 0x93, 0x36, 0xCF, 0xBD, 0x59, 0xEA, 0x57] ,_.GUID_MetadataFormatGps:=[0x7134AB8A, 0x9351, 0x44AD, 0xAF, 0x62, 0x44, 0x8D, 0xB6, 0xB5, 0x02, 0xEC] ,_.GUID_MetadataFormatInterop:=[0xED686F8E, 0x681F, 0x4C8B, 0xBD, 0x41, 0xA8, 0xAD, 0xDB, 0xF6, 0xB3, 0xFC] ,_.GUID_MetadataFormatApp0:=[0x79007028, 0x268D, 0x45d6, 0xA3, 0xC2, 0x35, 0x4E, 0x6A, 0x50, 0x4B, 0xC9] ,_.GUID_MetadataFormatApp1:=[0x8FD3DFC3, 0xF951, 0x492B, 0x81, 0x7F, 0x69, 0xC2, 0xE6, 0xD9, 0xA5, 0xB0] ,_.GUID_MetadataFormatApp13:=[0x326556A2, 0xF502, 0x4354, 0x9C, 0xC0, 0x8E, 0x3F, 0x48, 0xEA, 0xF6, 0xB5] ,_.GUID_MetadataFormatIPTC:=[0x4FAB0914, 0xE129, 0x4087, 0xA1, 0xD1, 0xBC, 0x81, 0x2D, 0x45, 0xA7, 0xB5] ,_.GUID_MetadataFormatIRB:=[0x16100D66, 0x8570, 0x4BB9, 0xB9, 0x2D, 0xFD, 0xA4, 0xB2, 0x3E, 0xCE, 0x67] ,_.GUID_MetadataFormat8BIMIPTC:=[0x0010568c, 0x0852, 0x4e6a, 0xb1, 0x91, 0x5c, 0x33, 0xac, 0x5b, 0x04, 0x30] ,_.GUID_MetadataFormat8BIMResolutionInfo:=[0x739F305D, 0x81DB, 0x43CB, 0xAC, 0x5E, 0x55, 0x01, 0x3E, 0xF9, 0xF0, 0x03] _.GUID_MetadataFormat8BIMIPTCDigest:=[0x1CA32285, 0x9CCD, 0x4786, 0x8B, 0xD8, 0x79, 0x53, 0x9D, 0xB6, 0xA0, 0x06] ,_.GUID_MetadataFormatXMP:=[0xBB5ACC38, 0xF216, 0x4CEC, 0xA6, 0xC5, 0x5F, 0x6E, 0x73, 0x97, 0x63, 0xA9] ,_.GUID_MetadataFormatThumbnail:=[0x243dcee9, 0x8703, 0x40ee, 0x8e, 0xf0, 0x22, 0xa6, 0x0, 0xb8, 0x5, 0x8c] ,_.GUID_MetadataFormatChunktEXt:=[0x568d8936, 0xc0a9, 0x4923, 0x90, 0x5d, 0xdf, 0x2b, 0x38, 0x23, 0x8f, 0xbc] ,_.GUID_MetadataFormatXMPStruct:=[0x22383CF1, 0xED17, 0x4E2E, 0xAF, 0x17, 0xD8, 0x5B, 0x8F, 0x6B, 0x30, 0xD0] ,_.GUID_MetadataFormatXMPBag:=[0x833CCA5F, 0xDCB7, 0x4516, 0x80, 0x6F, 0x65, 0x96, 0xAB, 0x26, 0xDC, 0xE4] ,_.GUID_MetadataFormatXMPSeq:=[0x63E8DF02, 0xEB6C,0x456C, 0xA2, 0x24, 0xB2, 0x5E, 0x79, 0x4F, 0xD6, 0x48] ,_.GUID_MetadataFormatXMPAlt:=[0x7B08A675, 0x91AA, 0x481B, 0xA7, 0x98, 0x4D, 0xA9, 0x49, 0x08, 0x61, 0x3B] ,_.GUID_MetadataFormatLSD:=[0xE256031E, 0x6299, 0x4929, 0xB9, 0x8D, 0x5A, 0xC8, 0x84, 0xAF, 0xBA, 0x92] ,_.GUID_MetadataFormatIMD:=[0xBD2BB086, 0x4D52, 0x48DD, 0x96, 0x77, 0xDB, 0x48, 0x3E, 0x85, 0xAE, 0x8F] ,_.GUID_MetadataFormatGCE:=[0x2A25CAD8, 0xDEEB, 0x4C69, 0xA7, 0x88, 0xE, 0xC2, 0x26, 0x6D, 0xCA, 0xFD] ,_.GUID_MetadataFormatAPE:=[0x2E043DC2, 0xC967, 0x4E05, 0x87, 0x5E, 0x61, 0x8B, 0xF6, 0x7E, 0x85, 0xC3] _.GUID_MetadataFormatJpegChrominance:=[0xF73D0DCF, 0xCEC6, 0x4F85, 0x9B, 0x0E, 0x1C, 0x39, 0x56, 0xB1, 0xBE, 0xF7] ,_.GUID_MetadataFormatJpegLuminance:=[0x86908007, 0xEDFC, 0x4860, 0x8D, 0x4B, 0x4E, 0xE6, 0xE8, 0x3E, 0x60, 0x58] ,_.GUID_MetadataFormatJpegComment:=[0x220E5F33, 0xAFD3, 0x474E, 0x9D, 0x31, 0x7D, 0x4F, 0xE7, 0x30, 0xF5, 0x57] ,_.GUID_MetadataFormatGifComment:=[0xC4B6E0E0, 0xCFB4, 0x4AD3, 0xAB, 0x33, 0x9A, 0xAD, 0x23, 0x55, 0xA3, 0x4A] ,_.GUID_MetadataFormatChunkgAMA:=[0xF00935A5, 0x1D5D, 0x4CD1, 0x81, 0xB2, 0x93, 0x24, 0xD7, 0xEC, 0xA7, 0x81] ,_.GUID_MetadataFormatChunkbKGD:=[0xE14D3571, 0x6B47, 0x4DEA, 0xB6, 0xA, 0x87, 0xCE, 0xA, 0x78, 0xDF, 0xB7] ,_.GUID_MetadataFormatChunkiTXt:=[0xC2BEC729, 0xB68, 0x4B77, 0xAA, 0xE, 0x62, 0x95, 0xA6, 0xAC, 0x18, 0x14] ,_.GUID_MetadataFormatChunkcHRM:=[0x9DB3655B, 0x2842, 0x44B3, 0x80, 0x67, 0x12, 0xE9, 0xB3, 0x75, 0x55, 0x6A] ,_.GUID_MetadataFormatChunkhIST:=[0xC59A82DA, 0xDB74, 0x48A4, 0xBD, 0x6A, 0xB6, 0x9C, 0x49, 0x31, 0xEF, 0x95] ,_.GUID_MetadataFormatChunkiCCP:=[0xEB4349AB, 0xB685, 0x450F, 0x91, 0xB5, 0xE8, 0x2, 0xE8, 0x92, 0x53, 0x6C] ,_.GUID_MetadataFormatChunksRGB:=[0xC115FD36, 0xCC6F, 0x4E3F, 0x83, 0x63, 0x52, 0x4B, 0x87, 0xC6, 0xB0, 0xD9] ,_.GUID_MetadataFormatChunktIME:=[0x6B00AE2D, 0xE24B, 0x460A, 0x98, 0xB6, 0x87, 0x8B, 0xD0, 0x30, 0x72, 0xFD] ; Vendor Identification _.GUID_VendorMicrosoft:=[0x69fd0fdc, 0xa866, 0x4108, 0xb3, 0xb2, 0x98, 0x44, 0x7f, 0xa9, 0xed, 0xd4] ,_.GUID_VendorMicrosoftBuiltIn:=[0x257a30fd, 0x6b6, 0x462b, 0xae, 0xa4, 0x63, 0xf7, 0xb, 0x86, 0xe5, 0x33] ; WICBitmapPaletteType _.GUID_WICPixelFormatDontCare:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x00] ,_.GUID_WICPixelFormat1bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x01] ,_.GUID_WICPixelFormat2bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x02] ,_.GUID_WICPixelFormat4bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x03] ,_.GUID_WICPixelFormat8bppIndexed:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x04] ,_.GUID_WICPixelFormatBlackWhite:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x05] ,_.GUID_WICPixelFormat2bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x06] ,_.GUID_WICPixelFormat4bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x07] ,_.GUID_WICPixelFormat8bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x08] ,_.GUID_WICPixelFormat8bppAlpha:=[0xe6cd0116, 0xeeba, 0x4161, 0xaa, 0x85, 0x27, 0xdd, 0x9f, 0xb3, 0xa8, 0x95] ,_.GUID_WICPixelFormat16bppBGR555:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x09] ,_.GUID_WICPixelFormat16bppBGR565:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0a] ,_.GUID_WICPixelFormat16bppBGRA5551:=[0x05ec7c2b, 0xf1e6, 0x4961, 0xad, 0x46, 0xe1, 0xcc, 0x81, 0x0a, 0x87, 0xd2] _.GUID_WICPixelFormat16bppGray:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0b] ,_.GUID_WICPixelFormat24bppBGR:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0c] ,_.GUID_WICPixelFormat24bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0d] ,_.GUID_WICPixelFormat32bppBGR:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0e] ,_.GUID_WICPixelFormat32bppBGRA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x0f] ,_.GUID_WICPixelFormat32bppPBGRA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x10] ,_.GUID_WICPixelFormat32bppGrayFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x11] ,_.GUID_WICPixelFormat32bppRGBA:=[0xf5c7ad2d, 0x6a8d, 0x43dd, 0xa7, 0xa8, 0xa2, 0x99, 0x35, 0x26, 0x1a, 0xe9] ,_.GUID_WICPixelFormat32bppPRGBA:=[0x3cc4a650, 0xa527, 0x4d37, 0xa9, 0x16, 0x31, 0x42, 0xc7, 0xeb, 0xed, 0xba] ,_.GUID_WICPixelFormat48bppRGB:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x15] ,_.GUID_WICPixelFormat48bppBGR:=[0xe605a384, 0xb468, 0x46ce, 0xbb, 0x2e, 0x36, 0xf1, 0x80, 0xe6, 0x43, 0x13] ,_.GUID_WICPixelFormat64bppRGBA:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x16] ,_.GUID_WICPixelFormat64bppBGRA:=[ 0x1562ff7c, 0xd352, 0x46f9, 0x97, 0x9e, 0x42, 0x97, 0x6b, 0x79, 0x22, 0x46] _.GUID_WICPixelFormat64bppPRGBA:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x17] ,_.GUID_WICPixelFormat64bppPBGRA:=[0x8c518e8e, 0xa4ec, 0x468b, 0xae, 0x70, 0xc9, 0xa3, 0x5a, 0x9c, 0x55, 0x30] ,_.GUID_WICPixelFormat16bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x13] ,_.GUID_WICPixelFormat32bppBGR101010:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x14] ,_.GUID_WICPixelFormat48bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x12] ,_.GUID_WICPixelFormat48bppBGRFixedPoint:=[0x49ca140e, 0xcab6, 0x493b, 0x9d, 0xdf, 0x60, 0x18, 0x7c, 0x37, 0x53, 0x2a] ,_.GUID_WICPixelFormat96bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x18] ,_.GUID_WICPixelFormat128bppRGBAFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x19] ,_.GUID_WICPixelFormat128bppPRGBAFloat:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1a] ,_.GUID_WICPixelFormat128bppRGBFloat:=[ 0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1b] ,_.GUID_WICPixelFormat32bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1c] ,_.GUID_WICPixelFormat64bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1d] ,_.GUID_WICPixelFormat64bppBGRAFixedPoint:=[0x356de33c, 0x54d2, 0x4a23, 0xbb, 0x4, 0x9b, 0x7b, 0xf9, 0xb1, 0xd4, 0x2d] _.GUID_WICPixelFormat64bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x40] ,_.GUID_WICPixelFormat128bppRGBAFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1e] ,_.GUID_WICPixelFormat128bppRGBFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x41] ,_.GUID_WICPixelFormat64bppRGBAHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3a] ,_.GUID_WICPixelFormat64bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x42] ,_.GUID_WICPixelFormat48bppRGBHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3b] ,_.GUID_WICPixelFormat32bppRGBE:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3d] ,_.GUID_WICPixelFormat16bppGrayHalf:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3e] ,_.GUID_WICPixelFormat32bppGrayFixedPoint:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x3f] ,_.GUID_WICPixelFormat32bppRGBA1010102:=[0x25238D72, 0xFCF9, 0x4522, 0xb5, 0x14, 0x55, 0x78, 0xe5, 0xad, 0x55, 0xe0] ,_.GUID_WICPixelFormat32bppRGBA1010102XR:=[0x00DE6B9A, 0xC101, 0x434b, 0xb5, 0x02, 0xd0, 0x16, 0x5e, 0xe1, 0x12, 0x2c] ,_.GUID_WICPixelFormat64bppCMYK:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x1f] ,_.GUID_WICPixelFormat24bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x20] _.GUID_WICPixelFormat32bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x21] ,_.GUID_WICPixelFormat40bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x22] ,_.GUID_WICPixelFormat48bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x23] ,_.GUID_WICPixelFormat56bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x24] ,_.GUID_WICPixelFormat64bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x25] ,_.GUID_WICPixelFormat48bpp3Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x26] ,_.GUID_WICPixelFormat64bpp4Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x27] ,_.GUID_WICPixelFormat80bpp5Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x28] ,_.GUID_WICPixelFormat96bpp6Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x29] ,_.GUID_WICPixelFormat112bpp7Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2a] ,_.GUID_WICPixelFormat128bpp8Channels:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2b] ,_.GUID_WICPixelFormat40bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2c] ,_.GUID_WICPixelFormat80bppCMYKAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2d] ,_.GUID_WICPixelFormat32bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2e] _.GUID_WICPixelFormat40bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x2f] ,_.GUID_WICPixelFormat48bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x30] ,_.GUID_WICPixelFormat56bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x31] ,_.GUID_WICPixelFormat64bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x32] ,_.GUID_WICPixelFormat72bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x33] ,_.GUID_WICPixelFormat64bpp3ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x34] ,_.GUID_WICPixelFormat80bpp4ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x35] ,_.GUID_WICPixelFormat96bpp5ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x36] ,_.GUID_WICPixelFormat112bpp6ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x37] ,_.GUID_WICPixelFormat128bpp7ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x38] ,_.GUID_WICPixelFormat144bpp8ChannelsAlpha:=[0x6fddc324, 0x4e03, 0x4bfe, 0xb1, 0x85, 0x3d, 0x77, 0x76, 0x8d, 0xc9, 0x39] } if _.haskey(name){ p:=_[name] VarSetCapacity(GUID,16) ,NumPut(p.1+(p.2<<32)+(p.3<<48),GUID,0,"int64") ,NumPut(p.4+(p.5<<8)+(p.6<<16)+(p.7<<24)+(p.8<<32)+(p.9<<40)+(p.10<<48)+(p.11<<56),GUID,8,"int64") return &GUID }else return name } WIC_hr(a){ static init:=1,err:={0x8000FFFF:"Catastrophic failure error.",0x80004001:"Not implemented error.",0x8007000E:"Out of memory error.",0x80070057:"One or more arguments are not valid error.",0x80004002:"Interface not supported error.",0x80004003:"Pointer not valid error.",0x80070006:"Handle not valid error.",0x80004004:"Operation aborted error.",0x80004005:"Unspecified error.",0x80070005:"General access denied error.",0x800401E5:"The object identified by this moniker could not be found."} if init{ init:=0 err[0x80004005]:="WINCODEC_ERR_GENERIC_ERROR" ,err[0x80070057]:="WINCODEC_ERR_INVALIDPARAMETER" ,err[0x8007000E]:="WINCODEC_ERR_OUTOFMEMORY" ,err[0x80004001]:="WINCODEC_ERR_NOTIMPLEMENTED" ,err[0x80004004]:="WINCODEC_ERR_ABORTED" ,err[0x80070005]:="WINCODEC_ERR_ACCESSDENIED" ,err[0x88982f04]:="WINCODEC_ERR_WRONGSTATE" ,err[0x88982f05]:="WINCODEC_ERR_VALUEOUTOFRANGE" ,err[0x88982f07]:="WINCODEC_ERR_UNKNOWNIMAGEFORMAT" ,err[0x88982f0B]:="WINCODEC_ERR_UNSUPPORTEDVERSION" ,err[0x88982f0C]:="WINCODEC_ERR_NOTINITIALIZED" ,err[0x88982f0D]:="WINCODEC_ERR_ALREADYLOCKED" ,err[0x88982f40]:="WINCODEC_ERR_PROPERTYNOTFOUND" ,err[0x88982f41]:="WINCODEC_ERR_PROPERTYNOTSUPPORTED" ,err[0x88982f42]:="WINCODEC_ERR_PROPERTYSIZE" ,err[0x88982f43]:="WINCODEC_ERR_CODECPRESENT" ,err[0x88982f44]:="WINCODEC_ERR_CODECNOTHUMBNAIL" ,err[0x88982f45]:="WINCODEC_ERR_PALETTEUNAVAILABLE" ,err[0x88982f46]:="WINCODEC_ERR_CODECTOOMANYSCANLINES" ,err[0x88982f48]:="WINCODEC_ERR_INTERNALERROR" ,err[0x88982f49]:="WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS" ,err[0x88982f50]:="WINCODEC_ERR_COMPONENTNOTFOUND" err[0x88982f51]:="WINCODEC_ERR_IMAGESIZEOUTOFRANGE" ,err[0x88982f52]:="WINCODEC_ERR_TOOMUCHMETADATA" ,err[0x88982f60]:="WINCODEC_ERR_BADIMAGE" ,err[0x88982f61]:="WINCODEC_ERR_BADHEADER" ,err[0x88982f62]:="WINCODEC_ERR_FRAMEMISSING" ,err[0x88982f63]:="WINCODEC_ERR_BADMETADATAHEADER" ,err[0x88982f70]:="WINCODEC_ERR_BADSTREAMDATA" ,err[0x88982f71]:="WINCODEC_ERR_STREAMWRITE" ,err[0x88982f72]:="WINCODEC_ERR_STREAMREAD" ,err[0x88982f73]:="WINCODEC_ERR_STREAMNOTAVAILABLE" ,err[0x88982f80]:="WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT" ,err[0x88982f81]:="WINCODEC_ERR_UNSUPPORTEDOPERATION" ,err[0x88982f8A]:="WINCODEC_ERR_INVALIDREGISTRATION" ,err[0x88982f8B]:="WINCODEC_ERR_COMPONENTINITIALIZEFAILURE" ,err[0x88982f8C]:="WINCODEC_ERR_INSUFFICIENTBUFFER" ,err[0x88982f8D]:="WINCODEC_ERR_DUPLICATEMETADATAPRESENT" ,err[0x88982f8E]:="WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE" ,err[0x88982f8F]:="WINCODEC_ERR_UNEXPECTEDSIZE" ,err[0x88982f90]:="WINCODEC_ERR_INVALIDQUERYREQUEST" ,err[0x88982f91]:="WINCODEC_ERR_UNEXPECTEDMETADATATYPE" ,err[0x88982f92]:="WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT" ,err[0x88982f93]:="WINCODEC_ERR_INVALIDQUERYCHARACTER" } if a && (a&=0xFFFFFFFF) { if err.haskey(a) return err[a] } return a }
How do I get this code HWND from window?
I did a test changing to:
Code: Select all
captureHwnd := "Skype"
-----------------------------------------------------------
Stop to think, shut up to resist, and act to win!
Stop to think, shut up to resist, and act to win!
Who is online
Users browsing this forum: mikeyww and 57 guests