1 
2 
3 /* All testcase are base how windows 2000 sp4 acting */
4 
5 
6 #include <stdio.h>
7 /* SDK/DDK/NDK Headers. */
8 #include <windows.h>
9 #include <wingdi.h>
10 #include <winddi.h>
11 #include <d3dnthal.h>
12 #include <dll/directx/d3d8thk.h>
13 #include "test.h"
14 
15 BOOL dumping_on =FALSE;
16 FILE *fs_file;
17 
18 /* we using d3d8thk.dll it is doing the real syscall in windows 2000
19  * in ReactOS and Windows XP and higher d3d8thk.dll it linking to
20  * gdi32.dll instead doing syscall, gdi32.dll export DdEntry1-56
21  * and doing the syscall direcly. I did forget about it, This
22  * test program are now working on any Windows and ReactOS
23  * that got d3d8thk.dll
24  */
25 
main(int argc,char ** argv)26 int main(int argc, char **argv)
27 {
28     HANDLE hDirectDrawLocal;
29 
30     if (argc == 2)
31     {
32         if (stricmp(argv[1],"-dump")==0)
33         {
34             dumping_on = TRUE;
35         }
36 
37         if ( (stricmp(argv[1],"-help")==0) ||
38              (stricmp(argv[1],"-?")==0) ||
39              (stricmp(argv[1],"/help")==0) ||
40              (stricmp(argv[1],"/?")==0) )
41         {
42             printf("the %s support follow param \n",argv[0]);
43             printf("-dump              : It dump all data it resvie to screen \n");
44             printf("-dumpfile filename : It dump all data it resvie to file \n");
45             printf("\nrember u can only use one of them at time \n");
46             exit(1);
47         }
48     }
49 
50     if (argc == 3)
51     {
52         if (stricmp(argv[1],"-dumpfile")==0)
53         {
54             /* create or over write a file in binary mode, and redirect printf to the file */
55             if ( (fs_file = freopen(argv[2], "wb", stdout)) != NULL)
56             {
57                 dumping_on = TRUE;
58             }
59         }
60     }
61 
62     hDirectDrawLocal = test_NtGdiDdCreateDirectDrawObject();
63 
64     test_NtGdiDdQueryDirectDrawObject(hDirectDrawLocal);
65 
66     test_NtGdiDdGetScanLine(hDirectDrawLocal);
67 
68     test_NtGdiDdWaitForVerticalBlank(hDirectDrawLocal);
69 
70     test_NtGdiDdCanCreateSurface(hDirectDrawLocal);
71 
72     test_NtGdiDdDeleteDirectDrawObject(hDirectDrawLocal);
73 
74     if (fs_file != NULL)
75     {
76         fclose(fs_file);
77     }
78     return 0;
79 }
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92