Diff

Not logged in

Differences From Artifact [b5a6268e1454a5d6]:

To Artifact [754e428e88f168dc]:


4 4 * Windows API header module * 5 5 * written in the D programming language * 6 6 * * 7 7 * Placed into public domain * 8 8 \***********************************************************************/ 9 9 10 10 module win32.vfw; 11 -pragma(lib, "vfw32.lib"); 11 +pragma(lib, "vfw32"); 12 12 13 13 private import 14 14 win32.commdlg, 15 15 win32.wingdi, 16 16 win32.mmsystem, 17 17 win32.unknwn, 18 18 win32.w32api, ................................................................................ 31 31 32 32 /** 33 33 * COMPMAN - Installable Compression Manager. 34 34 */ 35 35 36 36 const ICVERSION = 0x0104; 37 37 38 -alias HANDLE HIC; 38 +alias TypeDef!(HANDLE) HIC; 39 39 40 40 const BI_1632 = 0x32333631; 41 41 42 42 template aviTWOCC(char c0, char c1) { 43 43 const WORD aviTWOCC = c0 | (c1 << 8); 44 44 } 45 45 ................................................................................ 182 182 struct ICINFO { 183 183 DWORD dwSize; 184 184 DWORD fccType; 185 185 DWORD fccHandler; 186 186 DWORD dwFlags; 187 187 DWORD dwVersion; 188 188 DWORD dwVersionICM; 189 - WCHAR szName[16]; 190 - WCHAR szDescription[128]; 191 - WCHAR szDriver[128]; 189 + WCHAR[16] szName; 190 + WCHAR[128] szDescription; 191 + WCHAR[128] szDriver; 192 192 } 193 193 194 194 enum { 195 195 VIDCF_QUALITY = 0x0001, 196 196 VIDCF_CRUNCH = 0x0002, 197 197 VIDCF_TEMPORAL = 0x0004, 198 198 VIDCF_COMPRESSFRAMES = 0x0008, ................................................................................ 379 379 const ICMF_ABOUT_QUERY = 0x00000001; 380 380 381 381 DWORD ICQueryAbout(HIC hic) { 382 382 return ICSendMessage(hic, ICM_ABOUT, -1, ICMF_ABOUT_QUERY) == ICERR_OK; 383 383 } 384 384 385 385 DWORD ICAbout(HIC hic, HWND hwnd) { 386 - return ICSendMessage(hic, ICM_ABOUT, cast(UINT)hwnd, 0); 386 + return cast(DWORD) ICSendMessage(hic, ICM_ABOUT, cast(DWORD_PTR) cast(UINT_PTR) hwnd, 0); 387 387 } 388 388 389 389 DWORD ICQueryConfigure(HIC hic) { 390 390 return (ICSendMessage(hic, ICM_CONFIGURE, -1, ICMF_CONFIGURE_QUERY) == ICERR_OK); 391 391 } 392 392 393 393 DWORD ICConfigure(HIC hic, HWND hwnd) { 394 - return ICSendMessage(hic, ICM_CONFIGURE, cast(UINT)hwnd, 0); 394 + return cast(DWORD) ICSendMessage(hic, ICM_CONFIGURE, cast(DWORD_PTR) cast(UINT_PTR) hwnd, 0); 395 395 } 396 396 397 397 DWORD ICGetState(HIC hic, LPVOID pv, DWORD_PTR cb) { 398 - return ICSendMessage(hic, ICM_GETSTATE, cast(DWORD)pv, cast(DWORD)cb); 398 + return cast(DWORD) ICSendMessage(hic, ICM_GETSTATE, cast(DWORD_PTR) pv, cb); 399 399 } 400 400 401 401 DWORD ICSetState(HIC hic, LPVOID pv, DWORD_PTR cb) { 402 - return ICSendMessage(hic, ICM_SETSTATE, cast(DWORD)pv, cast(DWORD)cb); 402 + return cast(DWORD) ICSendMessage(hic, ICM_SETSTATE, cast(DWORD_PTR) pv, cb); 403 403 } 404 404 405 405 DWORD ICGetStateSize(HIC hic) { 406 406 return ICGetState(hic, null, 0); 407 407 } 408 408 409 409 DWORD dwICValue; ................................................................................ 415 415 416 416 DWORD ICGetDefaultKeyFrameRate(HIC hic) { 417 417 ICSendMessage(hic, ICM_GETDEFAULTKEYFRAMERATE, cast(DWORD_PTR)&dwICValue, DWORD.sizeof); 418 418 return dwICValue; 419 419 } 420 420 421 421 DWORD ICDrawWindow(HIC hic, LPVOID prc) { 422 - return ICSendMessage(hic, ICM_DRAW_WINDOW, cast(DWORD)prc, RECT.sizeof); 422 + return cast(DWORD) ICSendMessage(hic, ICM_DRAW_WINDOW, cast(DWORD_PTR) prc, RECT.sizeof); 423 423 } 424 424 425 425 extern (Windows) { 426 426 DWORD ICCompress(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiOutput, LPVOID lpData, 427 427 LPBITMAPINFOHEADER lpbiInput, LPVOID lpBits, LPDWORD lpckid, LPDWORD lpdwFlags, 428 428 LONG lFrameNum, DWORD dwFrameSize, DWORD dwQuality, LPBITMAPINFOHEADER lpbiPrev, LPVOID lpPrev); 429 429 } ................................................................................ 669 669 extern (Windows) { 670 670 BOOL ICSeqCompressFrameStart(PCOMPVARS pc, LPBITMAPINFO lpbiIn); 671 671 void ICSeqCompressFrameEnd(PCOMPVARS pc); 672 672 LPVOID ICSeqCompressFrame(PCOMPVARS pc, UINT uiFlags, LPVOID lpBits, BOOL* pfKey, LONG* plSize); 673 673 void ICCompressorFree(PCOMPVARS pc); 674 674 } 675 675 676 -alias HANDLE HDRAWDIB; 676 +mixin DECLARE_HANDLE!("HDRAWDIB"); 677 677 678 678 enum { 679 679 DDF_0001 = 0x0001, 680 680 DDF_UPDATE = 0x0002, 681 681 DDF_SAME_HDC = 0x0004, 682 682 DDF_SAME_DRAW = 0x0008, 683 683 DDF_DONTDRAW = 0x0010, ................................................................................ 814 814 DWORD dwFlags; 815 815 DWORD dwTotalFrames; 816 816 DWORD dwInitialFrames; 817 817 DWORD dwStreams; 818 818 DWORD dwSuggestedBufferSize; 819 819 DWORD dwWidth; 820 820 DWORD dwHeight; 821 - DWORD dwReserved[4]; 821 + DWORD[4] dwReserved; 822 822 } 823 823 824 824 const AVISF_DISABLED = 0x00000001; 825 825 826 826 const AVISF_VIDEO_PALCHANGES = 0x00010000; 827 827 828 828 struct AVIStreamHeader { ................................................................................ 857 857 DWORD dwChunkLength; 858 858 } 859 859 860 860 struct AVIPALCHANGE { 861 861 BYTE bFirstEntry; 862 862 BYTE bNumEntries; 863 863 WORD wFlags; 864 - PALETTEENTRY peNew[]; 864 + PALETTEENTRY[1] _peNew; 865 + PALETTEENTRY* peNew() { return _peNew.ptr; } 865 866 } 866 867 867 868 const AVIGETFRAMEF_BESTDISPLAYFMT = 1; 868 869 869 870 struct AVISTREAMINFOW { 870 871 DWORD fccType; 871 872 DWORD fccHandler; ................................................................................ 880 881 DWORD dwInitialFrames; 881 882 DWORD dwSuggestedBufferSize; 882 883 DWORD dwQuality; 883 884 DWORD dwSampleSize; 884 885 RECT rcFrame; 885 886 DWORD dwEditCount; 886 887 DWORD dwFormatChangeCount; 887 - WCHAR szName[64]; 888 + WCHAR[64] szName; 888 889 } 889 890 alias AVISTREAMINFOW* LPAVISTREAMINFOW; 890 891 891 892 struct AVISTREAMINFOA { 892 893 DWORD fccType; 893 894 DWORD fccHandler; 894 895 DWORD dwFlags; ................................................................................ 902 903 DWORD dwInitialFrames; 903 904 DWORD dwSuggestedBufferSize; 904 905 DWORD dwQuality; 905 906 DWORD dwSampleSize; 906 907 RECT rcFrame; 907 908 DWORD dwEditCount; 908 909 DWORD dwFormatChangeCount; 909 - char szName[64]; 910 + char[64] szName; 910 911 } 911 912 alias AVISTREAMINFOA* LPAVISTREAMINFOA; 912 913 913 914 version(Unicode) { 914 915 alias AVISTREAMINFOW AVISTREAMINFO; 915 916 alias LPAVISTREAMINFOW LPAVISTREAMINFO; 916 917 } else { // Unicode ................................................................................ 929 930 DWORD dwSuggestedBufferSize; 930 931 DWORD dwWidth; 931 932 DWORD dwHeight; 932 933 DWORD dwScale; 933 934 DWORD dwRate; 934 935 DWORD dwLength; 935 936 DWORD dwEditCount; 936 - WCHAR szFileType[64]; 937 + WCHAR[64] szFileType; 937 938 } 938 939 alias AVIFILEINFOW* LPAVIFILEINFOW; 939 940 940 941 struct AVIFILEINFOA { 941 942 DWORD dwMaxBytesPerSec; 942 943 DWORD dwFlags; 943 944 DWORD dwCaps; ................................................................................ 945 946 DWORD dwSuggestedBufferSize; 946 947 DWORD dwWidth; 947 948 DWORD dwHeight; 948 949 DWORD dwScale; 949 950 DWORD dwRate; 950 951 DWORD dwLength; 951 952 DWORD dwEditCount; 952 - char szFileType[64]; 953 + char[64] szFileType; 953 954 } 954 955 alias AVIFILEINFOA* LPAVIFILEINFOA; 955 956 956 957 version(Unicode) { 957 958 alias AVIFILEINFOW AVIFILEINFO; 958 959 alias LPAVIFILEINFOW LPAVIFILEINFO; 959 960 } else { // Unicode ................................................................................ 1035 1036 STDMETHOD(Reserved2) (THIS) PURE; 1036 1037 STDMETHOD(Reserved3) (THIS) PURE; 1037 1038 STDMETHOD(Reserved4) (THIS) PURE; 1038 1039 STDMETHOD(Reserved5) (THIS) PURE; 1039 1040 #endif 1040 1041 }; 1041 1042 1042 -typedef IAVIStream FAR* PAVISTREAM; 1043 +alias TypeDef!(IAVIStream FAR*) PAVISTREAM; 1043 1044 1044 1045 #undef INTERFACE 1045 1046 #define INTERFACE IAVIStreaming 1046 1047 1047 1048 DECLARE_INTERFACE_(IAVIStreaming, IUnknown) 1048 1049 { 1049 1050 STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; ................................................................................ 1053 1054 STDMETHOD(Begin) (THIS_ 1054 1055 LONG lStart, 1055 1056 LONG lEnd, 1056 1057 LONG lRate) PURE; 1057 1058 STDMETHOD(End) (THIS) PURE; 1058 1059 }; 1059 1060 1060 -typedef IAVIStreaming FAR* PAVISTREAMING; 1061 +alias TypeDef!(IAVIStreaming FAR*) PAVISTREAMING; 1061 1062 1062 1063 1063 1064 #undef INTERFACE 1064 1065 #define INTERFACE IAVIEditStream 1065 1066 1066 1067 DECLARE_INTERFACE_(IAVIEditStream, IUnknown) 1067 1068 { ................................................................................ 1081 1082 LONG lStart, 1082 1083 LONG lEnd) PURE; 1083 1084 STDMETHOD(Clone) (THIS_ PAVISTREAM FAR *ppResult) PURE; 1084 1085 STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW FAR * lpInfo, 1085 1086 LONG cbInfo) PURE; 1086 1087 }; 1087 1088 1088 -typedef IAVIEditStream FAR* PAVIEDITSTREAM; 1089 +alias TypeDef!(IAVIEditStream FAR*) PAVIEDITSTREAM; 1089 1090 1090 1091 #undef INTERFACE 1091 1092 #define INTERFACE IAVIPersistFile 1092 1093 1093 1094 DECLARE_INTERFACE_(IAVIPersistFile, IPersistFile) 1094 1095 { 1095 1096 STDMETHOD(Reserved1)(THIS) PURE; 1096 1097 }; 1097 1098 1098 -typedef IAVIPersistFile FAR* PAVIPERSISTFILE; 1099 +alias TypeDef!(IAVIPersistFile FAR*) PAVIPERSISTFILE; 1099 1100 1100 1101 #undef INTERFACE 1101 1102 #define INTERFACE IAVIFile 1102 1103 #define PAVIFILE IAVIFile FAR* 1103 1104 1104 1105 DECLARE_INTERFACE_(IAVIFile, IUnknown) 1105 1106 { ................................................................................ 1128 1129 STDMETHOD(EndRecord) (THIS) PURE; 1129 1130 STDMETHOD(DeleteStream) (THIS_ 1130 1131 DWORD fccType, 1131 1132 LONG lParam) PURE; 1132 1133 }; 1133 1134 1134 1135 #undef PAVIFILE 1135 -typedef IAVIFile FAR* PAVIFILE; 1136 +alias TypeDef!(IAVIFile FAR*) PAVIFILE; 1136 1137 1137 1138 #undef INTERFACE 1138 1139 #define INTERFACE IGetFrame 1139 1140 #define PGETFRAME IGetFrame FAR* 1140 1141 1141 1142 DECLARE_INTERFACE_(IGetFrame, IUnknown) 1142 1143 { ................................................................................ 1149 1150 STDMETHOD(Begin) (THIS_ LONG lStart, LONG lEnd, LONG lRate) PURE; 1150 1151 STDMETHOD(End) (THIS) PURE; 1151 1152 1152 1153 STDMETHOD(SetFormat) (THIS_ LPBITMAPINFOHEADER lpbi, LPVOID lpBits, int x, int y, int dx, int dy) PURE; 1153 1154 }; 1154 1155 1155 1156 #undef PGETFRAME 1156 -typedef IGetFrame FAR* PGETFRAME; 1157 +alias TypeDef!(IGetFrame FAR*) PGETFRAME; 1157 1158 1158 1159 #define DEFINE_AVIGUID(name, l, w1, w2) DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46) 1159 1160 1160 1161 DEFINE_AVIGUID(IID_IAVIFile, 0x00020020, 0, 0); 1161 1162 DEFINE_AVIGUID(IID_IAVIStream, 0x00020021, 0, 0); 1162 1163 DEFINE_AVIGUID(IID_IAVIStreaming, 0x00020022, 0, 0); 1163 1164 DEFINE_AVIGUID(IID_IGetFrame, 0x00020023, 0, 0); ................................................................................ 1662 1663 void MCIWndSetTimers(HWND hwnd, UINT active, UINT inactive) 1663 1664 { SendMessage(hwnd, MCIWNDM_SETTIMERS, cast(WPARAM)active, cast(LPARAM)inactive); } 1664 1665 UINT MCIWndGetActiveTimer(HWND hwnd) 1665 1666 { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETACTIVETIMER, 0, 0); } 1666 1667 UINT MCIWndGetInactiveTimer(HWND hwnd) 1667 1668 { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETINACTIVETIMER, 0, 0); } 1668 1669 LONG MCIWndRealize(HWND hwnd, BOOL fBkgnd) 1669 - { return SendMessage(hwnd, MCIWNDM_REALIZE, cast(WPARAM)fBkgnd, 0); } 1670 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_REALIZE, cast(WPARAM)fBkgnd, 0); } 1670 1671 LONG MCIWndSendString(HWND hwnd, LPTSTR sz) 1671 - { return SendMessage(hwnd, MCIWNDM_SENDSTRING, 0, cast(LPARAM)sz); } 1672 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_SENDSTRING, 0, cast(LPARAM)sz); } 1672 1673 LONG MCIWndReturnString(HWND hwnd, LPVOID lp, UINT len) 1673 - { return SendMessage(hwnd, MCIWNDM_RETURNSTRING, cast(WPARAM)len, cast(LPARAM)lp); } 1674 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_RETURNSTRING, cast(WPARAM)len, cast(LPARAM)lp); } 1674 1675 LONG MCIWndGetError(HWND hwnd, LPVOID lp, UINT len) 1675 - { return SendMessage(hwnd, MCIWNDM_GETERROR, cast(WPARAM)len, cast(LPARAM)lp); } 1676 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_GETERROR, cast(WPARAM)len, cast(LPARAM)lp); } 1676 1677 HPALETTE MCIWndGetPalette(HWND hwnd) 1677 1678 { return cast(HPALETTE)SendMessage(hwnd, MCIWNDM_GETPALETTE, 0, 0); } 1678 1679 LONG MCIWndSetPalette(HWND hwnd, HPALETTE hpal) 1679 - { return SendMessage(hwnd, MCIWNDM_SETPALETTE, cast(WPARAM)hpal, 0); } 1680 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_SETPALETTE, cast(WPARAM)hpal, 0); } 1680 1681 LONG MCIWndGetFileName(HWND hwnd, LPVOID lp, UINT len) 1681 - { return SendMessage(hwnd, MCIWNDM_GETFILENAME, cast(WPARAM)len, cast(LPARAM)lp); } 1682 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_GETFILENAME, cast(WPARAM)len, cast(LPARAM)lp); } 1682 1683 LONG MCIWndGetDevice(HWND hwnd, LPVOID lp, UINT len) 1683 - { return SendMessage(hwnd, MCIWNDM_GETDEVICE, cast(WPARAM)len, cast(LPARAM)lp); } 1684 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_GETDEVICE, cast(WPARAM)len, cast(LPARAM)lp); } 1684 1685 UINT MCIWndGetStyles(HWND hwnd) 1685 - { return SendMessage(hwnd, MCIWNDM_GETSTYLES, 0, 0); } 1686 + { return cast(UINT) SendMessage(hwnd, MCIWNDM_GETSTYLES, 0, 0); } 1686 1687 LONG MCIWndChangeStyles(HWND hwnd, UINT mask, LONG value) 1687 - { return SendMessage(hwnd, MCIWNDM_CHANGESTYLES, cast(WPARAM)mask, cast(LPARAM)value); } 1688 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_CHANGESTYLES, cast(WPARAM)mask, cast(LPARAM)value); } 1688 1689 LONG MCIWndOpenInterface(HWND hwnd, LPUNKNOWN pUnk) 1689 - { return SendMessage(hwnd, MCIWNDM_OPENINTERFACE, 0, cast(LPARAM)cast(void*)pUnk); } 1690 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_OPENINTERFACE, 0, cast(LPARAM)cast(void*)pUnk); } 1690 1691 LONG MCIWndSetOwner(HWND hwnd, HWND hwndP) 1691 - { return SendMessage(hwnd, MCIWNDM_SETOWNER, cast(WPARAM)hwndP, 0); } 1692 + { return cast(LONG) SendMessage(hwnd, MCIWNDM_SETOWNER, cast(WPARAM)hwndP, 0); } 1692 1693 1693 1694 enum { 1694 1695 MCIWNDM_GETDEVICEID = WM_USER + 100, 1695 1696 MCIWNDM_SENDSTRINGA = WM_USER + 101, 1696 1697 MCIWNDM_GETPOSITIONA = WM_USER + 102, 1697 1698 MCIWNDM_GETSTART = WM_USER + 103, 1698 1699 MCIWNDM_GETLENGTH = WM_USER + 104, ................................................................................ 1815 1816 MCI_MODE_PLAY, 1816 1817 MCI_MODE_RECORD, 1817 1818 MCI_MODE_SEEK, 1818 1819 MCI_MODE_PAUSE, 1819 1820 MCI_MODE_OPEN, 1820 1821 } 1821 1822 1822 -alias HANDLE HVIDEO; 1823 +alias TypeDef!(HANDLE) HVIDEO; 1823 1824 alias HVIDEO* LPHVIDEO; 1824 1825 1825 1826 // Error Return Values 1826 1827 1827 1828 enum { 1828 1829 DV_ERR_OK = 0, 1829 1830 DV_ERR_BASE = 1, ................................................................................ 1882 1883 struct VIDEOHDR { 1883 1884 LPBYTE lpData; 1884 1885 DWORD dwBufferLength; 1885 1886 DWORD dwBytesUsed; 1886 1887 DWORD dwTimeCaptured; 1887 1888 DWORD_PTR dwUser; 1888 1889 DWORD dwFlags; 1889 - DWORD_PTR dwReserved[4]; 1890 + DWORD_PTR[4]dwReserved; 1890 1891 } 1891 1892 alias VIDEOHDR* PVIDEOHDR, LPVIDEOHDR; 1892 1893 1893 1894 enum { 1894 1895 VHDR_DONE = 0x00000001, 1895 1896 VHDR_PREPARED = 0x00000002, 1896 1897 VHDR_INQUEUE = 0x00000004,