6 Commits

333 changed files with 1706 additions and 232337 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

View File

@ -1,67 +1,67 @@
VNUM TYPE MODEL NAME REG_1 REG_2 REG_3 REG_4 XROT_LIMIT YROT_LIMIT ZROT_LIMIT PRICE MATERIALS NPC GROUP DEPEND_GROUP ???????
14013 FACILITY jedan Fegyverkov<EFBFBD>cs -525 -525 525 525 0 0 360 20000000 90010,20/90011,30/90012,20 20044 2 1 1
14014 FACILITY jedan Felszerel<EFBFBD>s kov<6F>cs -525 -525 525 525 0 0 360 20000000 90010,20/90011,30/90012,20 20045 2 1 1
14015 FACILITY jedan <EFBFBD>kszer<EFBFBD>sz -525 -525 525 525 0 0 360 20000000 90010,20/90011,30/90012,20 20046 2 1 1
14033 FACILITY suryeonjang Kik<EFBFBD>pz<EFBFBD> k<>zpont -832.57 -472.99 832.57 472.99 0 0 360 20000000 90010,25/90011,25/90012,25 0 0 0 2
14043 FACILITY yonggwangro Gy<EFBFBD>m<EFBFBD>nt koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20060 3 1 1
14045 FACILITY yonggwangro Fosszilis fa koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20062 3 1 1
14046 FACILITY yonggwangro R<EFBFBD>z koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20063 3 1 1
14047 FACILITY yonggwangro Ez<EFBFBD>st koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20064 3 1 1
14048 FACILITY yonggwangro Arany koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20065 3 1 1
14049 FACILITY yonggwangro J<EFBFBD>de koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20066 3 1 1
14050 FACILITY yonggwangro <EFBFBD>benfa koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20067 3 1 1
14051 FACILITY yonggwangro Gy<EFBFBD>ngy koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20068 3 1 1
14052 FACILITY yonggwangro Feh<EFBFBD>rarany koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20069 3 1 1
14053 FACILITY yonggwangro Krist<73>ly koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20070 3 1 1
14054 FACILITY yonggwangro Ametiszt koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20071 3 1 1
14055 FACILITY yonggwangro Mennyei k<>nny koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
26992 FACILITY yonggwangro L<EFBFBD>lekkrist<EFBFBD>ly koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
26993 FACILITY yonggwangro Rubin koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
26994 FACILITY yonggwangro Gr<EFBFBD>n<EFBFBD>t koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
26995 FACILITY yonggwangro Smaragd koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
26996 FACILITY yonggwangro Zaf<EFBFBD>r koh<6F> -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
14061 FACILITY himuijedan_01 Az Er<45> olt<6C>ra -523.91 -995.84 527.55 750.99 0 0 360 25000000 90010,25/90011,25/90012,25 20077 4 1 1
14062 FACILITY himuijedan_02 Az Er<45> olt<6C>ra -586.17 -995.84 587.18 818.56 0 0 360 500000000 90010,50/90011,50/90012,50 20078 4 4 2
14063 FACILITY himuijedan_03 Az Er<45> olt<6C>ra -664.7 -995.84 665.7 896.57 0 0 360 750000000 90010,75/90011,75/90012,75 20079 4 4 2
14100 HEADQUARTER a1-011-workhouse H<EFBFBD>z (1) -676.52 -894.26 690.18 749.32 0 0 360 20000000 90010,20/90011,30/90012,25 0 1 0 1
14101 OBJECT a1-038-wall-corner K<EFBFBD>fal (1-1) -400 -153.53 156.48 400 0 0 360 2000000 90010,15/90011,5/90012,5 0 5 0 2
14102 OBJECT a1-038-wall-lin K<EFBFBD>fal (1-2) -200 -106.73 300 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14103 OBJECT a1-038-wall-lin2 K<EFBFBD>fal (1-3) -500 -106.73 500 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14104 OBJECT a1-038-wall-door Kapu (1) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 2
14105 BUILDIN a1-set Fal (1) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 1
14110 HEADQUARTER b1-011-workhouse H<EFBFBD>z (2) -678.76 -894.26 687.94 749.32 0 0 360 20000000 90010,20/90011,30/90012,25 0 1 0 1
14111 OBJECT b1-038-wall-corner K<EFBFBD>fal (2-1) -400 -153.53 156.48 400 0 0 360 2000000 90010,15/90011,5/90012,5 0 5 0 2
14112 OBJECT b1-038-wall-lin K<EFBFBD>fal (2-2) -200 -106.73 300 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14113 OBJECT b1-038-wall-lin2 K<EFBFBD>fal (2-3) -500 -106.73 500 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14114 OBJECT b1-038-wall-door Kapu (3) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 2
14115 BUILDIN b1-set Fal (2) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 1
14120 HEADQUARTER c1-011-workhouse H<EFBFBD>z (3) -676.52 -894.26 690.18 749.32 0 0 360 20000000 90010,20/90011,30/90012,25 0 1 0 1
14121 OBJECT c1-038-wall-corner K<EFBFBD>fal (3-1) -400 -153.53 156.48 400 0 0 360 2000000 90010,15/90011,5/90012,5 0 5 0 2
14122 OBJECT c1-038-wall-lin K<EFBFBD>fal (3-2) -200 -106.73 300 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14123 OBJECT c1-038-wall-lin2 K<EFBFBD>fal (3-3) -500 -106.73 500 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14124 OBJECT c1-038-wall-door Kapu (3) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 2
14125 BUILDIN c1-set Fal (3) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 1
14200 OBJECT guild_symbol C<EFBFBD>h jelv<6C>ny -45.9 -9.44 42.68 40.13 0 0 360 3000000 90011,5/90012,5 0 0 1 1
14201 WALL fence01_door01 Homlokzati fal -1000 -54 1000 20 0 0 360 3000000 "90010.50" 0 0 1 1
14202 WALL fence01_back01 H<EFBFBD>ts<EFBFBD> fal -1000 -18 1000 18 0 0 360 3000000 "90010.50" 0 0 1 1
14203 WALL fence01_left01 Bal oldali fal -19 -1362 19 1362 0 0 360 3000000 "90010.50" 0 0 1 1
14204 WALL fence01_right01 Jobb oldali fal -18 -1362 18 1362 0 0 360 3000000 "90010.50" 0 0 1 1
14300 OBJECT general_obj_stone01 K<EFBFBD>1 -116.04 -118.44 116.04 118.44 0 0 360 300000 90010,5 0 0 0 1
14301 OBJECT general_obj_stone02 K<EFBFBD>2 -118.05 -132.67 118.05 132.67 0 0 360 300000 90010,5 0 0 0 1
14302 OBJECT general_obj_stone03 K<EFBFBD>3 -133.43 -102.96 133.43 102.96 0 0 360 300000 90010,7 0 0 0 1
14303 OBJECT general_obj_stone04 K<EFBFBD>4 -104.21 -117.82 104.21 117.82 0 0 360 300000 90010,7 0 0 0 1
14304 OBJECT general_obj_stone05 K<EFBFBD>5 -171.59 -145.52 171.59 145.52 0 0 360 300000 90010,7 0 0 0 1
14305 OBJECT general_obj_stone06 K<EFBFBD>6 -192.74 -201.58 192.74 201.58 0 0 360 300000 90010,8 0 0 0 1
14306 OBJECT general_obj_stone07 K<EFBFBD>7 -183.58 -184.01 183.58 184.01 0 0 360 300000 90010,8 0 0 0 1
14307 OBJECT general_obj_stone08 K<EFBFBD>8 -66.89 -56.67 66.89 56.67 0 0 360 300000 90010,8 0 0 0 1
14308 OBJECT general_obj_stone09 K<EFBFBD>9 -65.87 -53.47 65.87 53.47 0 0 360 300000 90010,9 0 0 0 1
14309 OBJECT general_obj_stone10 K<EFBFBD>10 -182.17 -123.03 182.17 123.03 0 0 360 300000 90010,9 0 0 0 1
14400 OBJECT B1_PagodaTree_RT Fa1 0 0 360 2000000 90011,5 0 0 0 1
14401 OBJECT B1_PagodaTree_RT3 Fa2 0 0 360 2000000 90011,5 0 0 0 1
14402 OBJECT B1_Sassafras_RT_Fall Fa3 0 0 360 2000000 90011,7 0 0 0 1
14403 OBJECT B1_Sassafras_RT_Fall2 Fa4 0 0 360 2000000 90011,7 0 0 0 1
14404 OBJECT B3_ShingleOak_RT2 Fa5 0 0 360 2000000 90011,7 0 0 0 1
14405 OBJECT B2_IvySpy_RT Fa6 0 0 360 2000000 90011,9 0 0 0 1
14406 OBJECT B2_IvySpy_RT4 Fa7 0 0 360 2000000 90011,9 0 0 0 1
14407 OBJECT B2_JapaneseMaple_RT_Fall Fa8 0 0 360 2000000 90011,9 0 0 0 1
14408 OBJECT B2_JapaneseMaple_RT_Fall2 Fa9 0 0 360 2000000 90011,9 0 0 0 1
14013 FACILITY jedan Prelucrator de arme -525 -525 525 525 0 0 360 20000000 90010,20/90011,30/90012,20 20044 2 1 1
14014 FACILITY jedan Armurier -525 -525 525 525 0 0 360 20000000 90010,20/90011,30/90012,20 20045 2 1 1
14015 FACILITY jedan Bijutier -525 -525 525 525 0 0 360 20000000 90010,20/90011,30/90012,20 20046 2 1 1
14033 FACILITY suryeonjang Punct de Instruire -832.57 -472.99 832.57 472.99 0 0 360 20000000 90010,25/90011,25/90012,25 0 0 0 2
14043 FACILITY yonggwangro Prelucrator diamante -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20060 3 1 1
14045 FACILITY yonggwangro Cuptor de lemn -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20062 3 1 1
14046 FACILITY yonggwangro Turnatorie de cupru -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20063 3 1 1
14047 FACILITY yonggwangro Prelucrator argint -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20064 3 1 1
14048 FACILITY yonggwangro Prelucrator aur -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20065 3 1 1
14049 FACILITY yonggwangro Prelucrator de jad -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20066 3 1 1
14050 FACILITY yonggwangro Prelucrator abanos -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20067 3 1 1
14051 FACILITY yonggwangro Prelucrator de perle -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20068 3 1 1
14052 FACILITY yonggwangro Prelucrator aur alb -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20069 3 1 1
14053 FACILITY yonggwangro Prelucrator cristal -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20070 3 1 1
14054 FACILITY yonggwangro Prelucrator cuart -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20071 3 1 1
14055 FACILITY yonggwangro Topitor Celest -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
26992 FACILITY yonggwangro Prel. Cristal Spirit -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
26993 FACILITY yonggwangro Prelucrator Rubin -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
26994 FACILITY yonggwangro Prelucrator Granat -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
26995 FACILITY yonggwangro Prelucrator Smarald -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
26996 FACILITY yonggwangro Prelucrator Safir -179.63 -199.89 179.63 199.89 0 0 360 20000000 90010,15/90011,20/90012,25 20072 3 1 1
14061 FACILITY himuijedan_01 Altarul Puterii -523.91 -995.84 527.55 750.99 0 0 360 25000000 90010,25/90011,25/90012,25 20077 4 1 1
14062 FACILITY himuijedan_02 Altarul Puterii -586.17 -995.84 587.18 818.56 0 0 360 500000000 90010,50/90011,50/90012,50 20078 4 4 2
14063 FACILITY himuijedan_03 Altarul Puterii -664.7 -995.84 665.7 896.57 0 0 360 750000000 90010,75/90011,75/90012,75 20079 4 4 2
14100 HEADQUARTER a1-011-workhouse Casa(1) -676.52 -894.26 690.18 749.32 0 0 360 20000000 90010,20/90011,30/90012,25 0 1 0 1
14101 OBJECT a1-038-wall-corner Zid de piatra(1-1) -400 -153.53 156.48 400 0 0 360 2000000 90010,15/90011,5/90012,5 0 5 0 2
14102 OBJECT a1-038-wall-lin Zid de piatra(1-2) -200 -106.73 300 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14103 OBJECT a1-038-wall-lin2 Zid de piatra(1-3) -500 -106.73 500 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14104 OBJECT a1-038-wall-door Poarta(1) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 2
14105 BUILDIN a1-set Zid(1) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 1
14110 HEADQUARTER b1-011-workhouse Casa(2) -678.76 -894.26 687.94 749.32 0 0 360 20000000 90010,20/90011,30/90012,25 0 1 0 1
14111 OBJECT b1-038-wall-corner Zid de piatra(2-1) -400 -153.53 156.48 400 0 0 360 2000000 90010,15/90011,5/90012,5 0 5 0 2
14112 OBJECT b1-038-wall-lin Zid de piatra(2-2) -200 -106.73 300 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14113 OBJECT b1-038-wall-lin2 Zid de piatra(2-3) -500 -106.73 500 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14114 OBJECT b1-038-wall-door Poarta(2) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 2
14115 BUILDIN b1-set Zid(2) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 1
14120 HEADQUARTER c1-011-workhouse Casa(3) -676.52 -894.26 690.18 749.32 0 0 360 20000000 90010,20/90011,30/90012,25 0 1 0 1
14121 OBJECT c1-038-wall-corner Zid de piatra(3-1) -400 -153.53 156.48 400 0 0 360 2000000 90010,15/90011,5/90012,5 0 5 0 2
14122 OBJECT c1-038-wall-lin Zid de piatra(3-2) -200 -106.73 300 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14123 OBJECT c1-038-wall-lin2 Zid de piatra(3-3) -500 -106.73 500 106.73 0 0 360 1000000 90010,15/90011,5/90012,5 0 5 0 2
14124 OBJECT c1-038-wall-door Poarta(3) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 2
14125 BUILDIN c1-set Zid (3) -1000 -274.73 1000 274.73 0 0 360 2500000 90010,5/90011,15/90012,10 0 5 0 1
14200 OBJECT guild_symbol Simbolul Aliantei -45.9 -9.44 42.68 40.13 0 0 360 3000000 90011,5/90012,5 0 0 1 1
14201 WALL fence01_door01 Perete din fata -1000 -54 1000 20 0 0 360 3000000 "90010.50" 0 0 1 1
14202 WALL fence01_back01 Perete din spate -1000 -18 1000 18 0 0 360 3000000 "90010.50" 0 0 1 1
14203 WALL fence01_left01 Perete din stanga -19 -1362 19 1362 0 0 360 3000000 "90010.50" 0 0 1 1
14204 WALL fence01_right01 Perete din dreapta -18 -1362 18 1362 0 0 360 3000000 "90010.50" 0 0 1 1
14300 OBJECT general_obj_stone01 Piatra1 -116.04 -118.44 116.04 118.44 0 0 360 300000 90010,5 0 0 0 1
14301 OBJECT general_obj_stone02 Piatra2 -118.05 -132.67 118.05 132.67 0 0 360 300000 90010,5 0 0 0 1
14302 OBJECT general_obj_stone03 Piatr<EFBFBD>3 -133.43 -102.96 133.43 102.96 0 0 360 300000 90010,7 0 0 0 1
14303 OBJECT general_obj_stone04 Piatr<EFBFBD>4 -104.21 -117.82 104.21 117.82 0 0 360 300000 90010,7 0 0 0 1
14304 OBJECT general_obj_stone05 Piatr<EFBFBD>5 -171.59 -145.52 171.59 145.52 0 0 360 300000 90010,7 0 0 0 1
14305 OBJECT general_obj_stone06 Piatr<EFBFBD>6 -192.74 -201.58 192.74 201.58 0 0 360 300000 90010,8 0 0 0 1
14306 OBJECT general_obj_stone07 Piatr<EFBFBD>7 -183.58 -184.01 183.58 184.01 0 0 360 300000 90010,8 0 0 0 1
14307 OBJECT general_obj_stone08 Piatr<EFBFBD>8 -66.89 -56.67 66.89 56.67 0 0 360 300000 90010,8 0 0 0 1
14308 OBJECT general_obj_stone09 Piatr<EFBFBD>9 -65.87 -53.47 65.87 53.47 0 0 360 300000 90010,9 0 0 0 1
14309 OBJECT general_obj_stone10 Piatr<EFBFBD>10 -182.17 -123.03 182.17 123.03 0 0 360 300000 90010,9 0 0 0 1
14400 OBJECT B1_PagodaTree_RT Padure1 0 0 360 2000000 90011,5 0 0 0 1
14401 OBJECT B1_PagodaTree_RT3 Padure2 0 0 360 2000000 90011,5 0 0 0 1
14402 OBJECT B1_Sassafras_RT_Fall Padure3 0 0 360 2000000 90011,7 0 0 0 1
14403 OBJECT B1_Sassafras_RT_Fall2 Padure4 0 0 360 2000000 90011,7 0 0 0 1
14404 OBJECT B3_ShingleOak_RT2 Padure5 0 0 360 2000000 90011,7 0 0 0 1
14405 OBJECT B2_IvySpy_RT Padure6 0 0 360 2000000 90011,9 0 0 0 1
14406 OBJECT B2_IvySpy_RT4 Padure7 0 0 360 2000000 90011,9 0 0 0 1
14407 OBJECT B2_JapaneseMaple_RT_Fall Padure8 0 0 360 2000000 90011,9 0 0 0 1
14408 OBJECT B2_JapaneseMaple_RT_Fall2 Padure9 0 0 360 2000000 90011,9 0 0 0 1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 KiB

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,433 +0,0 @@
//------------------------------------------------------------------------------
// File: AMVideo.h
//
// Desc: Video related definitions and interfaces for ActiveMovie.
//
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#ifndef __AMVIDEO__
#define __AMVIDEO__
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
#include <ddraw.h>
// This is an interface on the video renderer that provides information about
// DirectDraw with respect to its use by the renderer. For example it allows
// an application to get details of the surface and any hardware capabilities
// that are available. It also allows someone to adjust the surfaces that the
// renderer should use and furthermore even set the DirectDraw instance. We
// allow someone to set the DirectDraw instance because DirectDraw can only
// be opened once per process so it helps resolve conflicts. There is some
// duplication in this interface as the hardware/emulated/FOURCCs available
// can all be found through the IDirectDraw interface, this interface allows
// simple access to that information without calling the DirectDraw provider
// itself. The AMDDS prefix is ActiveMovie DirectDraw Switches abbreviated.
#define AMDDS_NONE 0x00 // No use for DCI/DirectDraw
#define AMDDS_DCIPS 0x01 // Use DCI primary surface
#define AMDDS_PS 0x02 // Use DirectDraw primary
#define AMDDS_RGBOVR 0x04 // RGB overlay surfaces
#define AMDDS_YUVOVR 0x08 // YUV overlay surfaces
#define AMDDS_RGBOFF 0x10 // RGB offscreen surfaces
#define AMDDS_YUVOFF 0x20 // YUV offscreen surfaces
#define AMDDS_RGBFLP 0x40 // RGB flipping surfaces
#define AMDDS_YUVFLP 0x80 // YUV flipping surfaces
#define AMDDS_ALL 0xFF // ALL the previous flags
#define AMDDS_DEFAULT AMDDS_ALL // Use all available surfaces
#define AMDDS_YUV (AMDDS_YUVOFF | AMDDS_YUVOVR | AMDDS_YUVFLP)
#define AMDDS_RGB (AMDDS_RGBOFF | AMDDS_RGBOVR | AMDDS_RGBFLP)
#define AMDDS_PRIMARY (AMDDS_DCIPS | AMDDS_PS)
// be nice to our friends in C
#undef INTERFACE
#define INTERFACE IDirectDrawVideo
DECLARE_INTERFACE_(IDirectDrawVideo, IUnknown)
{
// IUnknown methods
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
// IDirectDrawVideo methods
STDMETHOD(GetSwitches)(THIS_ DWORD *pSwitches) PURE;
STDMETHOD(SetSwitches)(THIS_ DWORD Switches) PURE;
STDMETHOD(GetCaps)(THIS_ DDCAPS *pCaps) PURE;
STDMETHOD(GetEmulatedCaps)(THIS_ DDCAPS *pCaps) PURE;
STDMETHOD(GetSurfaceDesc)(THIS_ DDSURFACEDESC *pSurfaceDesc) PURE;
STDMETHOD(GetFourCCCodes)(THIS_ DWORD *pCount,DWORD *pCodes) PURE;
STDMETHOD(SetDirectDraw)(THIS_ LPDIRECTDRAW pDirectDraw) PURE;
STDMETHOD(GetDirectDraw)(THIS_ LPDIRECTDRAW *ppDirectDraw) PURE;
STDMETHOD(GetSurfaceType)(THIS_ DWORD *pSurfaceType) PURE;
STDMETHOD(SetDefault)(THIS) PURE;
STDMETHOD(UseScanLine)(THIS_ long UseScanLine) PURE;
STDMETHOD(CanUseScanLine)(THIS_ long *UseScanLine) PURE;
STDMETHOD(UseOverlayStretch)(THIS_ long UseOverlayStretch) PURE;
STDMETHOD(CanUseOverlayStretch)(THIS_ long *UseOverlayStretch) PURE;
STDMETHOD(UseWhenFullScreen)(THIS_ long UseWhenFullScreen) PURE;
STDMETHOD(WillUseFullScreen)(THIS_ long *UseWhenFullScreen) PURE;
};
// be nice to our friends in C
#undef INTERFACE
#define INTERFACE IQualProp
DECLARE_INTERFACE_(IQualProp, IUnknown)
{
// IUnknown methods
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
// Compare these with the functions in class CGargle in gargle.h
STDMETHOD(get_FramesDroppedInRenderer)(THIS_ int *pcFrames) PURE; // Out
STDMETHOD(get_FramesDrawn)(THIS_ int *pcFramesDrawn) PURE; // Out
STDMETHOD(get_AvgFrameRate)(THIS_ int *piAvgFrameRate) PURE; // Out
STDMETHOD(get_Jitter)(THIS_ int *iJitter) PURE; // Out
STDMETHOD(get_AvgSyncOffset)(THIS_ int *piAvg) PURE; // Out
STDMETHOD(get_DevSyncOffset)(THIS_ int *piDev) PURE; // Out
};
// This interface allows an application or plug in distributor to control a
// full screen renderer. The Modex renderer supports this interface. When
// connected a renderer should load the display modes it has available
// The number of modes available can be obtained through CountModes. Then
// information on each individual mode is available by calling GetModeInfo
// and IsModeAvailable. An application may enable and disable any modes
// by calling the SetEnabled flag with OATRUE or OAFALSE (not C/C++ TRUE
// and FALSE values) - the current value may be queried by IsModeEnabled
// A more generic way of setting the modes enabled that is easier to use
// when writing applications is the clip loss factor. This defines the
// amount of video that can be lost when deciding which display mode to
// use. Assuming the decoder cannot compress the video then playing an
// MPEG file (say 352x288) into a 320x200 display will lose about 25% of
// the image. The clip loss factor specifies the upper range permissible.
// To allow typical MPEG video to be played in 320x200 it defaults to 25%
// be nice to our friends in C
#undef INTERFACE
#define INTERFACE IFullScreenVideo
DECLARE_INTERFACE_(IFullScreenVideo, IUnknown)
{
// IUnknown methods
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
// IFullScreenVideo methods
STDMETHOD(CountModes)(THIS_ long *pModes) PURE;
STDMETHOD(GetModeInfo)(THIS_ long Mode,long *pWidth,long *pHeight,long *pDepth) PURE;
STDMETHOD(GetCurrentMode)(THIS_ long *pMode) PURE;
STDMETHOD(IsModeAvailable)(THIS_ long Mode) PURE;
STDMETHOD(IsModeEnabled)(THIS_ long Mode) PURE;
STDMETHOD(SetEnabled)(THIS_ long Mode,long bEnabled) PURE;
STDMETHOD(GetClipFactor)(THIS_ long *pClipFactor) PURE;
STDMETHOD(SetClipFactor)(THIS_ long ClipFactor) PURE;
STDMETHOD(SetMessageDrain)(THIS_ HWND hwnd) PURE;
STDMETHOD(GetMessageDrain)(THIS_ HWND *hwnd) PURE;
STDMETHOD(SetMonitor)(THIS_ long Monitor) PURE;
STDMETHOD(GetMonitor)(THIS_ long *Monitor) PURE;
STDMETHOD(HideOnDeactivate)(THIS_ long Hide) PURE;
STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
STDMETHOD(SetCaption)(THIS_ BSTR strCaption) PURE;
STDMETHOD(GetCaption)(THIS_ BSTR *pstrCaption) PURE;
STDMETHOD(SetDefault)(THIS) PURE;
};
// This adds the accelerator table capabilities in fullscreen. This is being
// added between the original runtime release and the full SDK release. We
// cannot just add the method to IFullScreenVideo as we don't want to force
// applications to have to ship the ActiveMovie support DLLs - this is very
// important to applications that plan on being downloaded over the Internet
// be nice to our friends in C
#undef INTERFACE
#define INTERFACE IFullScreenVideoEx
DECLARE_INTERFACE_(IFullScreenVideoEx, IFullScreenVideo)
{
// IUnknown methods
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
// IFullScreenVideo methods
STDMETHOD(CountModes)(THIS_ long *pModes) PURE;
STDMETHOD(GetModeInfo)(THIS_ long Mode,long *pWidth,long *pHeight,long *pDepth) PURE;
STDMETHOD(GetCurrentMode)(THIS_ long *pMode) PURE;
STDMETHOD(IsModeAvailable)(THIS_ long Mode) PURE;
STDMETHOD(IsModeEnabled)(THIS_ long Mode) PURE;
STDMETHOD(SetEnabled)(THIS_ long Mode,long bEnabled) PURE;
STDMETHOD(GetClipFactor)(THIS_ long *pClipFactor) PURE;
STDMETHOD(SetClipFactor)(THIS_ long ClipFactor) PURE;
STDMETHOD(SetMessageDrain)(THIS_ HWND hwnd) PURE;
STDMETHOD(GetMessageDrain)(THIS_ HWND *hwnd) PURE;
STDMETHOD(SetMonitor)(THIS_ long Monitor) PURE;
STDMETHOD(GetMonitor)(THIS_ long *Monitor) PURE;
STDMETHOD(HideOnDeactivate)(THIS_ long Hide) PURE;
STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
STDMETHOD(SetCaption)(THIS_ BSTR strCaption) PURE;
STDMETHOD(GetCaption)(THIS_ BSTR *pstrCaption) PURE;
STDMETHOD(SetDefault)(THIS) PURE;
// IFullScreenVideoEx
STDMETHOD(SetAcceleratorTable)(THIS_ HWND hwnd,HACCEL hAccel) PURE;
STDMETHOD(GetAcceleratorTable)(THIS_ HWND *phwnd,HACCEL *phAccel) PURE;
STDMETHOD(KeepPixelAspectRatio)(THIS_ long KeepAspect) PURE;
STDMETHOD(IsKeepPixelAspectRatio)(THIS_ long *pKeepAspect) PURE;
};
// The SDK base classes contain a base video mixer class. Video mixing in a
// software environment is tricky because we typically have multiple streams
// each sending data at unpredictable times. To work with this we defined a
// pin that is the lead pin, when data arrives on this pin we do a mix. As
// an alternative we may not want to have a lead pin but output samples at
// predefined spaces, like one every 1/15 of a second, this interfaces also
// supports that mode of operations (there is a working video mixer sample)
// be nice to our friends in C
#undef INTERFACE
#define INTERFACE IBaseVideoMixer
DECLARE_INTERFACE_(IBaseVideoMixer, IUnknown)
{
STDMETHOD(SetLeadPin)(THIS_ int iPin) PURE;
STDMETHOD(GetLeadPin)(THIS_ int *piPin) PURE;
STDMETHOD(GetInputPinCount)(THIS_ int *piPinCount) PURE;
STDMETHOD(IsUsingClock)(THIS_ int *pbValue) PURE;
STDMETHOD(SetUsingClock)(THIS_ int bValue) PURE;
STDMETHOD(GetClockPeriod)(THIS_ int *pbValue) PURE;
STDMETHOD(SetClockPeriod)(THIS_ int bValue) PURE;
};
#define iPALETTE_COLORS 256 // Maximum colours in palette
#define iEGA_COLORS 16 // Number colours in EGA palette
#define iMASK_COLORS 3 // Maximum three components
#define iTRUECOLOR 16 // Minimum true colour device
#define iRED 0 // Index position for RED mask
#define iGREEN 1 // Index position for GREEN mask
#define iBLUE 2 // Index position for BLUE mask
#define iPALETTE 8 // Maximum colour depth using a palette
#define iMAXBITS 8 // Maximum bits per colour component
// Used for true colour images that also have a palette
typedef struct tag_TRUECOLORINFO {
DWORD dwBitMasks[iMASK_COLORS];
RGBQUAD bmiColors[iPALETTE_COLORS];
} TRUECOLORINFO;
// The BITMAPINFOHEADER contains all the details about the video stream such
// as the actual image dimensions and their pixel depth. A source filter may
// also request that the sink take only a section of the video by providing a
// clipping rectangle in rcSource. In the worst case where the sink filter
// forgets to check this on connection it will simply render the whole thing
// which isn't a disaster. Ideally a sink filter will check the rcSource and
// if it doesn't support image extraction and the rectangle is not empty then
// it will reject the connection. A filter should use SetRectEmpty to reset a
// rectangle to all zeroes (and IsRectEmpty to later check the rectangle).
// The rcTarget specifies the destination rectangle for the video, for most
// source filters they will set this to all zeroes, a downstream filter may
// request that the video be placed in a particular area of the buffers it
// supplies in which case it will call QueryAccept with a non empty target
typedef struct tagVIDEOINFOHEADER {
RECT rcSource; // The bit we really want to use
RECT rcTarget; // Where the video should go
DWORD dwBitRate; // Approximate bit data rate
DWORD dwBitErrorRate; // Bit error rate for this stream
REFERENCE_TIME AvgTimePerFrame; // Average time per frame (100ns units)
BITMAPINFOHEADER bmiHeader;
} VIDEOINFOHEADER;
// make sure the pbmi is initialized before using these macros
#define TRUECOLOR(pbmi) ((TRUECOLORINFO *)(((LPBYTE)&((pbmi)->bmiHeader)) \
+ (pbmi)->bmiHeader.biSize))
#define COLORS(pbmi) ((RGBQUAD *)(((LPBYTE)&((pbmi)->bmiHeader)) \
+ (pbmi)->bmiHeader.biSize))
#define BITMASKS(pbmi) ((DWORD *)(((LPBYTE)&((pbmi)->bmiHeader)) \
+ (pbmi)->bmiHeader.biSize))
// All the image based filters use this to communicate their media types. It's
// centred principally around the BITMAPINFO. This structure always contains a
// BITMAPINFOHEADER followed by a number of other fields depending on what the
// BITMAPINFOHEADER contains. If it contains details of a palettised format it
// will be followed by one or more RGBQUADs defining the palette. If it holds
// details of a true colour format then it may be followed by a set of three
// DWORD bit masks that specify where the RGB data can be found in the image
// (For more information regarding BITMAPINFOs see the Win32 documentation)
// The rcSource and rcTarget fields are not for use by filters supplying the
// data. The destination (target) rectangle should be set to all zeroes. The
// source may also be zero filled or set with the dimensions of the video. So
// if the video is 352x288 pixels then set it to (0,0,352,288). These fields
// are mainly used by downstream filters that want to ask the source filter
// to place the image in a different position in an output buffer. So when
// using for example the primary surface the video renderer may ask a filter
// to place the video images in a destination position of (100,100,452,388)
// on the display since that's where the window is positioned on the display
// !!! WARNING !!!
// DO NOT use this structure unless you are sure that the BITMAPINFOHEADER
// has a normal biSize == sizeof(BITMAPINFOHEADER) !
// !!! WARNING !!!
typedef struct tagVIDEOINFO {
RECT rcSource; // The bit we really want to use
RECT rcTarget; // Where the video should go
DWORD dwBitRate; // Approximate bit data rate
DWORD dwBitErrorRate; // Bit error rate for this stream
REFERENCE_TIME AvgTimePerFrame; // Average time per frame (100ns units)
BITMAPINFOHEADER bmiHeader;
union {
RGBQUAD bmiColors[iPALETTE_COLORS]; // Colour palette
DWORD dwBitMasks[iMASK_COLORS]; // True colour masks
TRUECOLORINFO TrueColorInfo; // Both of the above
};
} VIDEOINFO;
// These macros define some standard bitmap format sizes
#define SIZE_EGA_PALETTE (iEGA_COLORS * sizeof(RGBQUAD))
#define SIZE_PALETTE (iPALETTE_COLORS * sizeof(RGBQUAD))
#define SIZE_MASKS (iMASK_COLORS * sizeof(DWORD))
#define SIZE_PREHEADER (FIELD_OFFSET(VIDEOINFOHEADER,bmiHeader))
#define SIZE_VIDEOHEADER (sizeof(BITMAPINFOHEADER) + SIZE_PREHEADER)
// !!! for abnormal biSizes
// #define SIZE_VIDEOHEADER(pbmi) ((pbmi)->bmiHeader.biSize + SIZE_PREHEADER)
// DIBSIZE calculates the number of bytes required by an image
#define WIDTHBYTES(bits) ((DWORD)(((bits)+31) & (~31)) / 8)
#define DIBWIDTHBYTES(bi) (DWORD)WIDTHBYTES((DWORD)(bi).biWidth * (DWORD)(bi).biBitCount)
#define _DIBSIZE(bi) (DIBWIDTHBYTES(bi) * (DWORD)(bi).biHeight)
#define DIBSIZE(bi) ((bi).biHeight < 0 ? (-1)*(_DIBSIZE(bi)) : _DIBSIZE(bi))
// This compares the bit masks between two VIDEOINFOHEADERs
#define BIT_MASKS_MATCH(pbmi1,pbmi2) \
(((pbmi1)->dwBitMasks[iRED] == (pbmi2)->dwBitMasks[iRED]) && \
((pbmi1)->dwBitMasks[iGREEN] == (pbmi2)->dwBitMasks[iGREEN]) && \
((pbmi1)->dwBitMasks[iBLUE] == (pbmi2)->dwBitMasks[iBLUE]))
// These zero fill different parts of the VIDEOINFOHEADER structure
// Only use these macros for pbmi's with a normal BITMAPINFOHEADER biSize
#define RESET_MASKS(pbmi) (ZeroMemory((PVOID)(pbmi)->dwBitFields,SIZE_MASKS))
#define RESET_HEADER(pbmi) (ZeroMemory((PVOID)(pbmi),SIZE_VIDEOHEADER))
#define RESET_PALETTE(pbmi) (ZeroMemory((PVOID)(pbmi)->bmiColors,SIZE_PALETTE));
#if 0
// !!! This is the right way to do it, but may break existing code
#define RESET_MASKS(pbmi) (ZeroMemory((PVOID)(((LPBYTE)(pbmi)->bmiHeader) + \
(pbmi)->bmiHeader.biSize,SIZE_MASKS)))
#define RESET_HEADER(pbmi) (ZeroMemory((PVOID)(pbmi), SIZE_PREHEADER + \
sizeof(BITMAPINFOHEADER)))
#define RESET_PALETTE(pbmi) (ZeroMemory((PVOID)(((LPBYTE)(pbmi)->bmiHeader) + \
(pbmi)->bmiHeader.biSize,SIZE_PALETTE))
#endif
// Other (hopefully) useful bits and bobs
#define PALETTISED(pbmi) ((pbmi)->bmiHeader.biBitCount <= iPALETTE)
#define PALETTE_ENTRIES(pbmi) ((DWORD) 1 << (pbmi)->bmiHeader.biBitCount)
// Returns the address of the BITMAPINFOHEADER from the VIDEOINFOHEADER
#define HEADER(pVideoInfo) (&(((VIDEOINFOHEADER *) (pVideoInfo))->bmiHeader))
// MPEG variant - includes a DWORD length followed by the
// video sequence header after the video header.
//
// The sequence header includes the sequence header start code and the
// quantization matrices associated with the first sequence header in the
// stream so is a maximum of 140 bytes long.
typedef struct tagMPEG1VIDEOINFO {
VIDEOINFOHEADER hdr; // Compatible with VIDEOINFO
DWORD dwStartTimeCode; // 25-bit Group of pictures time code
// at start of data
DWORD cbSequenceHeader; // Length in bytes of bSequenceHeader
BYTE bSequenceHeader[1]; // Sequence header including
// quantization matrices if any
} MPEG1VIDEOINFO;
#define MAX_SIZE_MPEG1_SEQUENCE_INFO 140
#define SIZE_MPEG1VIDEOINFO(pv) (FIELD_OFFSET(MPEG1VIDEOINFO, bSequenceHeader[0]) + (pv)->cbSequenceHeader)
#define MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)
// Analog video variant - Use this when the format is FORMAT_AnalogVideo
//
// rcSource defines the portion of the active video signal to use
// rcTarget defines the destination rectangle
// both of the above are relative to the dwActiveWidth and dwActiveHeight fields
// dwActiveWidth is currently set to 720 for all formats (but could change for HDTV)
// dwActiveHeight is 483 for NTSC and 575 for PAL/SECAM (but could change for HDTV)
typedef struct tagAnalogVideoInfo {
RECT rcSource; // Width max is 720, height varies w/ TransmissionStd
RECT rcTarget; // Where the video should go
DWORD dwActiveWidth; // Always 720 (CCIR-601 active samples per line)
DWORD dwActiveHeight; // 483 for NTSC, 575 for PAL/SECAM
REFERENCE_TIME AvgTimePerFrame; // Normal ActiveMovie units (100 nS)
} ANALOGVIDEOINFO;
//
// AM_KSPROPSETID_FrameStep property set definitions
//
typedef enum {
// Step
AM_PROPERTY_FRAMESTEP_STEP = 0x01,
AM_PROPERTY_FRAMESTEP_CANCEL = 0x02,
// S_OK for these 2 means we can - S_FALSE if we can't
AM_PROPERTY_FRAMESTEP_CANSTEP = 0x03,
AM_PROPERTY_FRAMESTEP_CANSTEPMULTIPLE = 0x04
} AM_PROPERTY_FRAMESTEP;
typedef struct _AM_FRAMESTEP_STEP
{
// 1 means step 1 frame forward
// 0 is invalid
// n (n > 1) means skip n - 1 frames and show the nth
DWORD dwFramesToStep;
} AM_FRAMESTEP_STEP;
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // __AMVIDEO__

1613
extern/include/Bdatif.h vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,78 +0,0 @@
//------------------------------------------------------------------------------
// File: DShow.h
//
// Desc: DirectShow top-level include file
//
// Copyright (c) 2000-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#ifndef __DSHOW_INCLUDED__
#define __DSHOW_INCLUDED__
///////////////////////////////////////////////////////////////////////////
// Set up constants & pragmas for the compiler
///////////////////////////////////////////////////////////////////////////
#ifdef _MSC_VER
// disable some level-4 warnings, use #pragma warning(default:###) to re-enable
#pragma warning(disable:4100) // warning C4100: unreferenced formal parameter
#pragma warning(disable:4201) // warning C4201: nonstandard extension used : nameless struct/union
#pragma warning(disable:4511) // warning C4511: copy constructor could not be generated
#pragma warning(disable:4512) // warning C4512: assignment operator could not be generated
#pragma warning(disable:4514) // warning C4514: "unreferenced inline function has been removed"
#if _MSC_VER>=1100
#define AM_NOVTABLE __declspec(novtable)
#else
#define AM_NOVTABLE
#endif
#endif // MSC_VER
///////////////////////////////////////////////////////////////////////////
// Include standard Windows files
///////////////////////////////////////////////////////////////////////////
#include <windows.h>
#include <windowsx.h>
#include <olectl.h>
#include <ddraw.h>
#include <mmsystem.h>
#ifndef NUMELMS
#define NUMELMS(aa) (sizeof(aa)/sizeof((aa)[0]))
#endif
///////////////////////////////////////////////////////////////////////////
// Include DirectShow include files
///////////////////////////////////////////////////////////////////////////
#include <strmif.h> // Generated IDL header file for streams interfaces
#include <amvideo.h> // ActiveMovie video interfaces and definitions
#include <amaudio.h> // ActiveMovie audio interfaces and definitions
#include <control.h> // generated from control.odl
#include <evcode.h> // event code definitions
#include <uuids.h> // declaration of type GUIDs and well-known clsids
#include <errors.h> // HRESULT status and error definitions
#include <edevdefs.h> // External device control interface defines
#include <audevcod.h> // audio filter device error event codes
#include <dvdevcod.h> // DVD error event codes
///////////////////////////////////////////////////////////////////////////
// Define OLE Automation constants
///////////////////////////////////////////////////////////////////////////
#ifndef OATRUE
#define OATRUE (-1)
#endif // OATRUE
#ifndef OAFALSE
#define OAFALSE (0)
#endif // OAFALSE
///////////////////////////////////////////////////////////////////////////
// Define Win64 interfaces if not already defined
///////////////////////////////////////////////////////////////////////////
// InterlockedExchangePointer
#ifndef InterlockedExchangePointer
#define InterlockedExchangePointer(Target, Value) \
(PVOID)InterlockedExchange((PLONG)(Target), (LONG)(Value))
#endif
#endif // __DSHOW_INCLUDED__

View File

@ -1,633 +0,0 @@
//---------------------------------------------------------------------
//
// Copyright (c) 1999-2001 Microsoft Corporation
//
// BDATIF.idl
//
//---------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (C) 1999-2001 Microsoft Corporation. All Rights Reserved.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("#if ( _MSC_VER >= 800 )")
cpp_quote("#pragma warning(disable:4201) /* Nameless struct/union */")
cpp_quote("#endif")
cpp_quote("#if ( _MSC_VER >= 1020 )")
cpp_quote("#pragma once")
cpp_quote("#endif")
//---------------------------------------------------------------------
// IUnknown import idl
//---------------------------------------------------------------------
#ifndef DO_NO_IMPORTS
import "unknwn.idl";
import "strmif.idl";
import "tuner.idl";
#endif
interface IMPEG2_TIF_CONTROL;
interface IATSCChannelInfo;
//******************************************************************************
//
// IMPEG2_TIF_CONTROL interface
//
// Implemented by the Microsoft ATSC/DVB BDA Network Provider
//
// Used by a transport information filter (TIF) to request table
// sections carried on specific PIDs within the transport stream.
// The Network Provider Filter will, in turn, do the necessary
// control on the Demux Filter. All sections are delivered as comlete
// mpeg2 table sections via the TIF's connection to the Demux Filter.
//
[
object,
uuid(F9BAC2F9-4149-4916-B2EF-FAA202326862),
helpstring("BDA Network Provider Inteface for DVB/ATSC Transport Information Filters"),
pointer_default(unique)
]
interface IMPEG2_TIF_CONTROL : IUnknown
{
[helpstring("Used to register a transport analyzer with the Network Provider")]
HRESULT
RegisterTIF (
[in] IUnknown * pUnkTIF,
[in, out] ULONG * ppvRegistrationContext
);
[helpstring("Used to unregister TIF with the Network Provider")]
HRESULT
UnregisterTIF (
[in] ULONG pvRegistrationContext
);
[helpstring("Used to add PSI/SI MPEG2 packet IDs to the TIF's data stream")]
HRESULT
AddPIDs (
[in] ULONG ulcPIDs,
[in] ULONG * pulPIDs
);
[helpstring("Used to remove PSI/SI MPEG2 packet IDs from the TIF's data stream")]
HRESULT
DeletePIDs (
[in] ULONG ulcPIDs,
[in] ULONG * pulPIDs
);
[helpstring("Returns the number of MPEG2 Packet IDs being filtered into the TIF's input data.")]
HRESULT
GetPIDCount (
[out] ULONG * pulcPIDs
);
[helpstring("Returns the the list of MPEG2 Packet IDs being filtered into the TIF's input data.")]
HRESULT
GetPIDs (
[out] ULONG * pulcPIDs,
[out] ULONG * pulPIDs
);
}
//******************************************************************************
//
// ITuneRequestInfo interface
//
// Implemented by a BDA transport information filter (TIF)
//
// Used by the BDA Network Provider to obtain network specific
// information about locating transport streams and aquiring
// services.
//
//
// GetLocatorData -
//
// GetComponentData -
//
// CreateComponentList -
//
// GetNextService -
//
// GetPreviouService -
//
// GetNextLocator -
//
// GetPreviousLocator -
//
[
object,
uuid(A3B152DF-7A90-4218-AC54-9830BEE8C0B6),
helpstring("Interface provided by the Mpeg2 Transport Information Filter to supply tuning details."),
pointer_default(unique)
]
interface ITuneRequestInfo : IUnknown
{
[helpstring("TIF fills in channel/program locator information for the given tune request.")]
HRESULT
GetLocatorData (
[in] ITuneRequest *Request
);
[helpstring("TIF fills in all network specific component data for the existing component list on the given tune request.")]
HRESULT
GetComponentData (
[in] ITuneRequest *CurrentRequest
);
[helpstring("TIF creates a complete component list and fills in all network specific component data on the given tune request")]
HRESULT
CreateComponentList (
[in] ITuneRequest *CurrentRequest
);
[helpstring("TIF creates a new TuneRequest with channel/program locator information for the next service.")]
HRESULT
GetNextProgram (
[in] ITuneRequest *CurrentRequest,
[out, retval] ITuneRequest **TuneRequest
);
[helpstring("TIF creates a new TuneRequest with channel/program locator information for the previous service.")]
HRESULT
GetPreviousProgram (
[in] ITuneRequest *CurrentRequest,
[out, retval] ITuneRequest **TuneRequest
);
[helpstring("TIF creates a new TuneRequest with locator information for the next transport stream.")]
HRESULT
GetNextLocator (
[in] ITuneRequest *CurrentRequest,
[out, retval] ITuneRequest **TuneRequest
);
[helpstring("TIF creates a new TuneRequest with locator information for the previous transport stream.")]
HRESULT
GetPreviousLocator (
[in] ITuneRequest *CurrentRequest,
[out, retval] ITuneRequest **TuneRequest
);
}
//******************************************************************************
//
// IGuideDataEvent
//
// This is the guide data event notification callback interface. The
// callback interface is registered on a transport analyzer's
// IConnectionPoint by the event consumer.
//
// The event consumer MUST NOT BLOCK THE CALLING THREAD.
//
// If the consumer requires additional information about the event, it
// should queue the event to a separate thread.
//
// {EFDA0C80-F395-42c3-9B3C-56B37DEC7BB7}
//
[
object,
uuid(EFDA0C80-F395-42c3-9B3C-56B37DEC7BB7),
helpstring("Consumers of a guide data events must implement this callback interface."),
pointer_default(unique)
]
interface IGuideDataEvent : IUnknown
{
// Indicates that a complete set of guide data has been acquire from
// the current transport stream.
//
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
// it must supply this event.
//
HRESULT GuideDataAcquired(
);
// Indicates that information about one or more programs changed.
//
// If varProgramDescriptionID is NULL then the consumer
// must get properties for all programs to determine which ones
// changed.
//
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
// it must supply this event.
//
HRESULT ProgramChanged(
[in] VARIANT varProgramDescriptionID
);
// Indicates that information about one or more services changed.
//
// If varServiceDescriptionID is NULL then the consumer
// must get properties for all services to determine which ones
// changed.
//
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
// it must supply this event.
//
HRESULT ServiceChanged(
[in] VARIANT varServiceDescriptionID
);
// Indicates that information about one or more schedule entries
// changed.
//
// If varScheduleEntryDescriptionID is NULL then the consumer
// must get properties for all schedule entries to determine which ones
// changed.
//
// MANDATORY - If a transport analyzer supports IGuideDataEvent then
// it must supply this event.
//
HRESULT ScheduleEntryChanged(
[in] VARIANT varScheduleEntryDescriptionID
);
// Indicates that the program with the given Description.ID
// has been deleted.
//
//
// Optional - Transport analyzer may supply this event. Consumer
// may return E_NOTIMPL.
//
HRESULT ProgramDeleted(
[in] VARIANT varProgramDescriptionID
);
// Indicates that the service with the given Description.ID
// has been deleted.
//
//
// Optional - Transport analyzer may supply this event. Consumer
// may return E_NOTIMPL.
//
HRESULT ServiceDeleted(
[in] VARIANT varServiceDescriptionID
);
// Indicates that the schedule entry with the given Description.ID
// has been deleted.
//
//
// Optional - Transport analyzer may supply this event. Consumer
// may return E_NOTIMPL.
//
HRESULT ScheduleDeleted(
[in] VARIANT varScheduleEntryDescriptionID
);
}
//******************************************************************************
//
// IGuideDataPropery
//
// {88EC5E58-BB73-41d6-99CE-66C524B8B591}
//
[
object,
uuid(88EC5E58-BB73-41d6-99CE-66C524B8B591),
helpstring("Interface provided by a transport analyzer to represent a guide data property."),
pointer_default(unique)
]
interface IGuideDataProperty : IUnknown
{
[propget] HRESULT Name([out] BSTR *pbstrName);
[propget] HRESULT Language([out] long *idLang);
[propget] HRESULT Value([out] VARIANT *pvar);
}
//******************************************************************************
//
// IEnumGuideDataProperties
//
// {AE44423B-4571-475c-AD2C-F40A771D80EF}
//
[
object,
uuid(AE44423B-4571-475c-AD2C-F40A771D80EF),
helpstring("Interface provided by a transport analyzer to enumerate guide data properties."),
pointer_default(unique)
]
interface IEnumGuideDataProperties : IUnknown
{
HRESULT Next([in] unsigned long celt, [out] IGuideDataProperty **ppprop, [out] unsigned long *pcelt);
HRESULT Skip([in] unsigned long celt);
HRESULT Reset();
HRESULT Clone([out] IEnumGuideDataProperties **ppenum);
}
//******************************************************************************
//
// IEnumTuneRequests
//
// {1993299C-CED6-4788-87A3-420067DCE0C7}
//
[
object,
uuid(1993299C-CED6-4788-87A3-420067DCE0C7),
helpstring("Interface provided by a transport analyzer to enumerate service tune requests ."),
pointer_default(unique)
]
interface IEnumTuneRequests : IUnknown
{
HRESULT Next([in] unsigned long celt, [out] ITuneRequest **ppprop, [out] unsigned long *pcelt);
HRESULT Skip([in] unsigned long celt);
HRESULT Reset();
HRESULT Clone([out] IEnumTuneRequests **ppenum);
}
//******************************************************************************
//
// IGuideData
//
// {61571138-5B01-43cd-AEAF-60B784A0BF93}
//
[
object,
uuid(61571138-5B01-43cd-AEAF-60B784A0BF93),
helpstring("Interface provided by a transport analyzer to supply guide data information."),
pointer_default(unique)
]
interface IGuideData : IUnknown
{
//-------------------------------------------------------------------------
//
// GetServices
// Returns an enumeration of tune requests for all services whose
// information is found in the current transport stream.
//
// Parameters
//
// IEnumTuneRequests **
// Location in which a reference to the resulting
// IEnumTuneRequests is placed. The caller must release
// this reference when finished with it.
//
// Comments
// This call is used to enumerate all services whose information
// can be found in the service descriptor table. Each tune request
// in the IEnumTuneRequest * contains the tune request including the
// locator data for the service.
//
[helpstring("Returns an enumeration of services whose information is found in the given transport stream")]
HRESULT
GetServices (
[out, retval] IEnumTuneRequests ** ppEnumTuneRequests
);
//-------------------------------------------------------------------------
//
// GetServiceProperties
// Returns an enumeration of all guide data properties for
// the service with the given Description.ID.
//
// Parameters
// ITuneRequest *
// Pointer to a tune request that contains information needed
// to indentify the requested transport stream.
// A NULL ITuneRequest * indicates that information about the
// current transport stream is requested.
//
// IEnumGuideDataProperties **
// Location in which a reference to the resulting
// IEnumGuideDataProperties is placed. The caller must release
// this reference when finished with it.
//
// Required Properties
// The following properties MUST be included in the returned
// property enumeration.
//
// Description.ID
// Uniquely identifies a service.
//
// Description.Name
// The default name to use for this service in the channel lineup.
//
// Description.Version
// Identifies the current version of the properties associated
// with this service.
//
// Provider.Name
// Name of the service provider (e.g. "KCTS")
//
// Provider.NetworkName
// Name of the network on which the service is provided.
// (e.g. "PBS")
//
// Service.TuneRequest
// Contains a tune request in the variant
//
//
[helpstring("Returns an enumeration of all guide data properties for the service specified by a tune request.")]
HRESULT
GetServiceProperties (
[in] ITuneRequest * pTuneRequest,
[out, retval] IEnumGuideDataProperties ** ppEnumProperties
);
//-------------------------------------------------------------------------
//
// GetProgramIDs
// Returns an enumeration of the unique identifiers (Description.ID)
// of programs with description contained in all transport
// streams
//
// Parameters
//
// IEnumVARIANT **
// Location in which a reference to the resulting
// IEnumVARIANT is placed. The caller must release
// this reference when finished with it.
//
// Comments
// This call is used to get a list of programs that have
// guide data properties in all transport streams.
// Each variant returned in the IEnumVARIANT * contains the
// unique Description.ID property for a program.
// Note that more than on transport stream may contain properties
// for the same program. In this case the properties should be
// merged.
//
[helpstring("Returns an enumeration of the Description.ID property for all programs on the given transport stream.")]
HRESULT
GetGuideProgramIDs (
[out, retval] IEnumVARIANT ** pEnumPrograms
);
//-------------------------------------------------------------------------
//
// GetProgramProperties
// Returns an enumeration of all guide data properties for
// the program with the given Description.ID.
//
// Parameters
// varProgramDescriptionID
// Variant containing the unique identifier for the program
// for which properties are requested.
//
// IEnumGuideDataProperties **
// Location in which a reference to the resulting
// IEnumGuideDataProperties is placed. The caller must release
// this reference when finished with it.
//
// Required Properties
// The following properties MUST be included in the returned
// property enumeration.
//
// Description.ID
// Uniquely identifies a program.
//
// Description.Version
// Identifies the current version of the properties associated
// with this program.
//
// Description.Title
// Human readable title of the program (e.g. "")
//
// Description.Long
// A description of the program.
//
[helpstring("Returns an enumeration of all guide data properties for the program with the given Description.ID.")]
HRESULT
GetProgramProperties (
[in] VARIANT varProgramDescriptionID,
[out, retval] IEnumGuideDataProperties ** ppEnumProperties
);
//-------------------------------------------------------------------------
//
// GetScheduleIDs
// Returns an enumeration of the unique identifiers (Description.ID)
// transport of schedule entries with description contained in the
// given transport stream.
//
// Parameters
//
// IEnumVARIANT **
// Location in which a reference to the resulting
// IEnumVARIANT is placed. The caller must release
// this reference when finished with it.
//
// Comments
// This call is used to get a list of schedule entries that have
// guide data properties in all transport streams.
// Each variant returned in the IEnumVARIANT * contains the
// unique Description.ID property for a schedule entry.
// Note that more than on transport stream may contain properties
// for the same schedule entry. In this case the properties
// should be merged.
//
[helpstring("Returns an enumeration of the Description.ID property for all schedule entries in the transport stream specified by a tune request.")]
HRESULT
GetScheduleEntryIDs (
[out, retval] IEnumVARIANT ** pEnumScheduleEntries
);
//-------------------------------------------------------------------------
//
// GetScheduleEntryProperties
// Returns an enumeration of all guide data properties for
// the schedule entry with the given Description.ID.
//
// Parameters
// varScheduleEntryDescriptionID
// Variant containing the unique identifier for the schedule
// entry for which properties are requested.
//
// IEnumGuideDataProperties **
// Location in which a reference to the resulting
// IEnumGuideDataProperties is placed. The caller must release
// this reference when finished with it.
//
// Required Properties
// The following properties MUST be included in the returned
// property enumeration.
//
// Description.ID
// Uniquely identifies a schedule entry.
//
// Description.Version
// Identifies the current version of the properties associated
// with this program.
//
// Time.Start
// The starting time and date of this schedule entry.
//
// Time.End
// The ending time and date of this schedule entry.
//
// Schedule.Program
// The Description.ID of the program that will play at the
// time specified by this schedule entry.
//
// Schedule.Service
// The Description.ID of the Service that carries the
// program that will play at the time specified by this
// schedule entry.
//
[helpstring("Returns an enumeration of all guide data properties for the schedule entry with the given Description.ID.")]
HRESULT
GetScheduleEntryProperties (
[in] VARIANT varScheduleEntryDescriptionID,
[out, retval] IEnumGuideDataProperties ** ppEnumProperties
);
}
//******************************************************************************
//
// IGuideDataLoader
//
// All Guide Data Loaders MUST implement this interface. It is how they are
// provided with the IGuideData interface that they will use.
//
// {4764ff7c-fa95-4525-af4d-d32236db9e38}
[
object,
uuid(4764ff7c-fa95-4525-af4d-d32236db9e38),
helpstring("IGuideDataLoader Interface"),
pointer_default(unique)
]
interface IGuideDataLoader : IUnknown
{
HRESULT Init([in] IGuideData *pGuideStore);
HRESULT Terminate();
};
[
uuid(8224A083-7F8C-432D-B83E-3C5E9BDE3528),
version(1.0),
helpstring("psisload 1.0 Type Library")
]
library PSISLOADLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(14EB8748-1753-4393-95AE-4F7E7A87AAD6),
helpstring("TIFLoad Class")
]
coclass TIFLoad
{
interface IGuideDataLoader;
interface IGuideDataEvent;
};
};

View File

@ -1,845 +0,0 @@
//------------------------------------------------------------------------------
// File: MSTvCA.idl
//
// Desc: IDL source for MSTvCA.dll
//
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// This file will be processed by the MIDL tool to
// produce the type library (CA.tlb) and marshalling code.
import "oaidl.idl";
import "ocidl.idl";
#include "olectl.h"
/* [
object,
dual,
uuid(49a32d3c-7d85-11d2-8895-00c04f794967),
helpstring("ITuneRequest Interface"),
pointer_default(unique)
]
interface ITuneRequest : IDispatch
{
};
*/
import "tuner.idl"; // includes the whole BDA world! Yecko!
interface ICAManager;
interface ICARequest;
interface ICAPolicy;
interface ICAPolicies;
interface ICAPoliciesInternal;
interface ICAToll;
interface ICATolls;
interface ICATollsInternal;
interface ICADenial;
interface ICADenials;
interface ICAOffer;
interface ICAOffers;
interface ICAComponent;
interface ICAComponents;
#define COLLECTID_Item 0
#define COLLECTID_Count 1
#define COLLECTID_Add 2
#define COLLECTID_Remove 3
#define COLLECTID_AddNew 4
#define COLLECTID_CountDenied 5 // ICADenials
#define COLLECTID_CountSelected 6 // ICADenials
#define COLLECTID_PaySelectedTolls 7 // ICADenials
typedef enum
{
Unselected = 0,
Selected = 1
} CATollState;
typedef enum
{
Denied = 0,
Transient = 1,
// Allowed = 2,
DescriptionShort = 10, // one of the description fields changed
DescriptionLong = 11, // via a ICADenial::put_Description()
DescriptionHTML = 12, //
DescriptionXML = 13 // (keep these current+10 with list below...)
} CADenialState;
typedef enum
{
Short = 0, // must be numeric, starting at 0. (Used as array index).
Long = 1, // in approximatly order of length in bytes
URL = 2,
HTML = 3,
XML = 4,
kDescEnd = 5 // invalid format, 1+ last real one (Used as array length).
} CADescFormat;
typedef enum
{
Request = 1,
ComponentX = 2,
Offers = 4,
PaidTolls = 8,
Policies = 16,
Standard = 15, // all put the policies
All = 31 // all
} CAUIDisplayFields;
// ---------------------------------------------------------------
// if add methods to ICAManagerInternal, be sure to add MAGICCALL in CAManagerProxy too..
// ---------------------------------------------------------------
[
object,
uuid(11166301-DF8A-463a-B620-7BEC23542010),
dual, // Helpers are Dual, IUnknown... so see from VB
hidden, restricted,
helpstring("ICAManagerInternal Interface"),
pointer_default(unique)
]
interface ICAManagerInternal : IUnknown
{
[ id(1), helpstring("method Save")] HRESULT Save();
[ id(2), helpstring("method Load")] HRESULT Load();
[propput, id(3), helpstring("property MarkDirty")] HRESULT MarkDirty([in] BOOL fDirty);
[propget, id(3), helpstring("property MarkDirty")] HRESULT MarkDirty([out, retval] BOOL *pfDirty);
[propput, id(4), helpstring("property TuneRequest")] HRESULT TuneRequest([in] ITuneRequest *ptunereq);
[ id(5), helpstring("method GetDefaultUI")] HRESULT GetDefaultUI([out] HWND *phwnd);
[ id(6), helpstring("method SetDefaultUI")] HRESULT SetDefaultUI([in] HWND hwnd);
// return the main CAManager object, not the proxy one.
[propget, id(7), helpstring("property CAManagerMain")] HRESULT CAManagerMain([out,retval] ICAManager **ppManagerMain);
[propput, id(8), helpstring("property BroadcastEventService")] HRESULT BroadcastEventService([in] IBroadcastEvent *pBroadcastEventService);
[propget, id(8), helpstring("property BroadcastEventService")] HRESULT BroadcastEventService([out, retval] IBroadcastEvent **ppBroadcastEventService);
[ id(9), helpstring("method DisplayDefaultUI")] HRESULT DisplayDefaultUI([in] VARIANT_BOOL fDisplay);
[ id(10), helpstring("method EnableDefaultUIPayTollsButton")] HRESULT EnableDefaultUIPayTollsButton([in] VARIANT_BOOL fEnabled);
[ id(11), helpstring("method UpdateDefaultUIForToll")] HRESULT UpdateDefaultUIForToll([in] ICAToll *pToll,[in] CATollState enState);
[propput, id(12), helpstring("property TuneRequestInt")] HRESULT TuneRequestInt([in] ITuneRequest *ptunereq);
[ id(13), helpstring("method AddDenialsFor")] HRESULT AddDenialsFor([in] IUnknown *pUnk); // see also ICAManager::get_DenialsFor()
[ id(14), helpstring("method RemoveDenialsFor")] HRESULT RemoveDenialsFor([in] IUnknown *pUnk);
[ id(2201),helpstring("method NotifyRequestActivated")] HRESULT NotifyRequestActivated([in] ICARequest *pReq);
[ id(2202),helpstring("method NotifyRequestDeactivated")] HRESULT NotifyRequestDeactivated([in] ICARequest *pReq);
[ id(2203),helpstring("method NotifyOfferAdded")] HRESULT NotifyOfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
[ id(2204),helpstring("method NotifyOfferRemoved")] HRESULT NotifyOfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
[ id(2205),helpstring("method NotifyPolicyAdded")] HRESULT NotifyPolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
[ id(2206),helpstring("method NotifyPolicyRemoved")] HRESULT NotifyPolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
[ id(2207),helpstring("method NotifyRequestDenialAdded")] HRESULT NotifyRequestDenialAdded([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2208),helpstring("method NotifyRequestDenialRemoved")] HRESULT NotifyRequestDenialRemoved([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2209),helpstring("method NotifyDenialTollAdded")] HRESULT NotifyDenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
[ id(2210),helpstring("method NotifyDenialTollRemoved")] HRESULT NotifyDenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
[ id(2211),helpstring("method NotifyTollDenialAdded")] HRESULT NotifyTollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2212),helpstring("method NotifyTollDenialRemoved")] HRESULT NotifyTollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2213),helpstring("method NotifyOfferTollAdded")] HRESULT NotifyOfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
[ id(2214),helpstring("method NotifyOfferTollRemoved")] HRESULT NotifyOfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
[ id(2215),helpstring("method NotifyTollStateChanged")] HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateLast);
[ id(2216),helpstring("method NotifyDenialStateChanged")] HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
[ id(2217),helpstring("method NotifyComponentDenialAdded")] HRESULT NotifyComponentDenialAdded([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2218),helpstring("method NotifyComponentDenialRemoved")] HRESULT NotifyComponentDenialRemoved([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
};
[
object,
uuid(11166302-DF8A-463a-B620-7BEC23542010),
dual, // Helpers are Dual, IUnknown... so see from VB
hidden, restricted,
helpstring("ICAManagerXProxy Interface"),
pointer_default(unique)
]
interface ICAManagerXProxy : IUnknown
{
[propget, id(1), helpstring("property PunkCAManagerProxy")] HRESULT PunkCAManagerProxy([out,retval] IUnknown **ppUnkCAManagerProxy);
[ id(2201),helpstring("method NotifyRequestActivated_XProxy")] HRESULT NotifyRequestActivated_XProxy([in] ICARequest *pReq);
[ id(2202),helpstring("method NotifyRequestDeactivated_XProxy")] HRESULT NotifyRequestDeactivated_XProxy([in] ICARequest *pReq);
[ id(2203),helpstring("method NotifyOfferAdded_XProxy")] HRESULT NotifyOfferAdded_XProxy([in] ICAOffer *pOffer,[in] long cOffers);
[ id(2204),helpstring("method NotifyOfferRemoved_XProxy")] HRESULT NotifyOfferRemoved_XProxy([in] ICAOffer *pOffer,[in] long cOffers);
[ id(2205),helpstring("method NotifyPolicyAdded_XProxy")] HRESULT NotifyPolicyAdded_XProxy([in] ICAPolicy *pPolicy,[in] long cPolicies);
[ id(2206),helpstring("method NotifyPolicyRemoved_XProxy")] HRESULT NotifyPolicyRemoved_XProxy([in] ICAPolicy *pPolicy,[in] long cPolicies);
[ id(2207),helpstring("method NotifyRequestDenialAdded_XProxy")] HRESULT NotifyRequestDenialAdded_XProxy([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2208),helpstring("method NotifyRequestDenialRemoved_XProxy")] HRESULT NotifyRequestDenialRemoved_XProxy([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2209),helpstring("method NotifyDenialTollAdded_XProxy")] HRESULT NotifyDenialTollAdded_XProxy([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
[ id(2210),helpstring("method NotifyDenialTollRemoved_XProxy")] HRESULT NotifyDenialTollRemoved_XProxy([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
[ id(2211),helpstring("method NotifyTollDenialAdded_XProxy")] HRESULT NotifyTollDenialAdded_XProxy([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2212),helpstring("method NotifyTollDenialRemoved_XProxy")] HRESULT NotifyTollDenialRemoved_XProxy([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2213),helpstring("method NotifyOfferTollAdded_XProxy")] HRESULT NotifyOfferTollAdded_XProxy([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
[ id(2214),helpstring("method NotifyOfferTollRemoved_XProxy")] HRESULT NotifyOfferTollRemoved_XProxy([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
[ id(2215),helpstring("method NotifyTollStateChanged_XProxy")] HRESULT NotifyTollStateChanged_XProxy([in] ICAToll *pToll, [in] CATollState enStateLast);
[ id(2216),helpstring("method NotifyDenialStateChanged_XProxy")] HRESULT NotifyDenialStateChanged_XProxy([in] ICADenial *pDenial, [in] CADenialState enStateLast);
[ id(2217),helpstring("method NotifyComponentDenialAdded_XProxy")] HRESULT NotifyComponentDenialAdded_XProxy([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2218),helpstring("method NotifyComponentDenialRemoved_XProxy")] HRESULT NotifyComponentDenialRemoved_XProxy([in] ICAComponent *pReq, [in] ICADenial *pDenial,[in] long cDenials);
};
// ---------------------------------------------------------------
// ---------------------------------------------------------------
[
object,
uuid(11166420-DF8A-463a-B620-7BEC23542010),
dual,
helpstring("ICAPolicies Interface"),
pointer_default(unique)
]
interface ICAPolicies : IDispatch
{
[propget, id(DISPID_NEWENUM), restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
[propget, id(COLLECTID_Count)] HRESULT Count([out, retval] long *Count);
[propget, id(COLLECTID_Item)] HRESULT Item([in] VARIANT Index, [out, retval] ICAPolicy **ppPolicy);
[ id(COLLECTID_Add)] HRESULT Add([in] ICAPolicy *pPolicy);
[ id(COLLECTID_Remove)] HRESULT Remove([in] VARIANT Index);
};
[ object,
uuid(11166421-DF8A-463a-B620-7BEC23542010),
dual,
hidden, restricted,
helpstring("ICAPoliciesInternal Interface"),
pointer_default(unique)
]
interface ICAPoliciesInternal : IUnknown
{
[id(1),helpstring("method SetCAManager")] HRESULT SetCAManager([in] ICAManager *pManager);
[id(2),helpstring("method CheckRequest")] HRESULT CheckRequest([in] ICARequest *pReq);
};
// ---------------------------------------------------------------
[
object,
uuid(11166430-DF8A-463a-B620-7BEC23542010),
dual,
helpstring("ICATolls Interface"),
pointer_default(unique)
]
interface ICATolls : IDispatch
{
[propget, id(DISPID_NEWENUM), restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
[propget, id(COLLECTID_Count)] HRESULT Count([out, retval] long *Count);
[propget, id(COLLECTID_Item)] HRESULT Item([in] VARIANT Index, [out, retval] ICAToll **ppToll);
[ id(COLLECTID_Add)] HRESULT Add([in] ICAToll *pToll);
[ id(COLLECTID_Remove)] HRESULT Remove([in] VARIANT Index);
};
[
object,
uuid(11166431-DF8A-463a-B620-7BEC23542010),
dual,
hidden, restricted,
helpstring("ICATolls Internal Interface"),
pointer_default(unique)
]
interface ICATollsInternal : IUnknown // workaround for not being able to get _ICAResDenialEvents to work
{
[ id(1),helpstring("method SetCAManager")] HRESULT SetCAManager([in] ICAManager *pManager);
[ id(2),helpstring("method GetCAManager")] HRESULT GetCAManager([out] ICAManager **ppManager);
[ id(3),helpstring("method SetMustPersist")] HRESULT SetMustPersist([in] BOOL fMustPersist);
[ id(4),helpstring("method Save")] HRESULT Save([in] IStorage *pstore,[in] BSTR bstrPrefix);
[ id(5),helpstring("method Load")] HRESULT Load([in] IStorage *pstore,[in] BSTR bstrPrefix);
[ id(6),helpstring("method NotifyStateChanged")] HRESULT NotifyStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
[ id(7),helpstring("method NotifyTollSelectionChanged")] HRESULT NotifyTollSelectionChanged([in] ICAToll *pToll, [in] BOOL fSelected);
};
// ---------------------------------------------------------------
[
object,
uuid(11166440-DF8A-463a-B620-7BEC23542010),
dual,
helpstring("ICADenials Interface"),
pointer_default(unique)
]
interface ICADenials : IDispatch
{
[propget, id(DISPID_NEWENUM), restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
[propget, id(COLLECTID_Count) ] HRESULT Count([out, retval] long *Count);
[propget, id(COLLECTID_Item)] HRESULT Item([in] VARIANT Index, [out, retval] ICADenial **ppDenial);
[propget, id(COLLECTID_AddNew), helpstring("property AddNew")] HRESULT AddNew([in] ICAPolicy *ppolicy, [in] BSTR bstrShortDesc, [in] IUnknown *pUnkDeniedObject, [in] long enDenialState, [out, retval] ICADenial **ppDenial);
[ id(COLLECTID_Remove)] HRESULT Remove([in] VARIANT Index);
[propget, id(COLLECTID_CountDenied)] HRESULT CountDenied([out, retval] long *Count);
[propget, id(COLLECTID_CountSelected)] HRESULT CountSelected([out, retval] long *Count);
[ id(COLLECTID_PaySelectedTolls)] HRESULT PaySelectedTolls();
};
[
object,
uuid(11166441-DF8A-463a-B620-7BEC23542010),
dual,
hidden, restricted,
helpstring("ICADenialsInternal Interface"),
pointer_default(unique)
]
interface ICADenialsInternal : IUnknown
{
[ id(1),helpstring("method SetCAManager")] HRESULT SetCAManager([in] ICAManager *pManager);
[ id(2),helpstring("method NotifyDenialStateChanged")] HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
};
// ---------------------------------------------------------------
[
object,
uuid(11166450-DF8A-463a-B620-7BEC23542010),
dual,
helpstring("ICAOffers Interface"),
pointer_default(unique)
]
interface ICAOffers : IDispatch
{
[propget, id(DISPID_NEWENUM) , restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
[propget, id(COLLECTID_Count)] HRESULT Count([out, retval] long *Count);
[propget, id(COLLECTID_Item)] HRESULT Item([in] VARIANT Index, [out, retval] ICAOffer **ppOffer);
[propget, id(COLLECTID_AddNew), helpstring("property AddNew")] HRESULT AddNew([in] ICAPolicy *pPolicy, [in] BSTR bstrName, [in] DATE dateStart, [in] DATE dateEnd, [out, retval] ICAOffer **ppOffer);
[ id(COLLECTID_Remove)] HRESULT Remove([in] VARIANT Index);
};
[
object,
uuid(11166470-DF8A-463a-B620-7BEC23542010),
dual,
helpstring("ICAComponents Interface"),
pointer_default(unique)
]
interface ICAComponents : IDispatch
{
[propget, id(DISPID_NEWENUM) , restricted] HRESULT _NewEnum([out, retval] IUnknown **ppCollection);
[propget, id(COLLECTID_Count)] HRESULT Count([out, retval] long *Count);
[propget, id(COLLECTID_Item)] HRESULT Item([in] VARIANT Index, [out, retval] ICAComponent **ppComponent);
// [ id(COLLECTID_Add)] HRESULT Add([in] ICAComponent *pComponent);
// [ id(COLLECTID_Remove)] HRESULT Remove([in] VARIANT Index);
};
[
object,
uuid(11166361-DF8A-463a-B620-7BEC23542010),
dual,
hidden,
helpstring("ICAComponentInternal Interface"),
pointer_default(unique)
]
interface ICAComponentInternal : IUnknown
{
[ id(1), helpstring("method RemoveAllDenials")] HRESULT RemoveAllDenials();
[propget, id(2), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstrDescription);
};
// ---------------------------------------------------------------
[
object,
uuid(860A3FE2-DED1-40E2-896C-057681A8A1A8),
dual,
helpstring("ICADefaultDlg Interface"),
pointer_default(unique)
]
interface ICADefaultDlg : IDispatch
{
[propput, id(DISPID_AUTOSIZE)]
HRESULT AutoSize([in]VARIANT_BOOL vbool);
[propget, id(DISPID_AUTOSIZE)]
HRESULT AutoSize([out,retval]VARIANT_BOOL* pbool);
[propput, id(DISPID_BACKCOLOR)]
HRESULT BackColor([in]OLE_COLOR clr);
[propget, id(DISPID_BACKCOLOR)]
HRESULT BackColor([out,retval]OLE_COLOR* pclr);
[propput, id(DISPID_BACKSTYLE)]
HRESULT BackStyle([in]long style);
[propget, id(DISPID_BACKSTYLE)]
HRESULT BackStyle([out,retval]long* pstyle);
[propput, id(DISPID_BORDERCOLOR)]
HRESULT BorderColor([in]OLE_COLOR clr);
[propget, id(DISPID_BORDERCOLOR)]
HRESULT BorderColor([out, retval]OLE_COLOR* pclr);
[propput, id(DISPID_BORDERSTYLE)]
HRESULT BorderStyle([in]long style);
[propget, id(DISPID_BORDERSTYLE)]
HRESULT BorderStyle([out, retval]long* pstyle);
[propput, id(DISPID_BORDERWIDTH)]
HRESULT BorderWidth([in]long width);
[propget, id(DISPID_BORDERWIDTH)]
HRESULT BorderWidth([out, retval]long* width);
[propput, id(DISPID_DRAWMODE)]
HRESULT DrawMode([in]long mode);
[propget, id(DISPID_DRAWMODE)]
HRESULT DrawMode([out, retval]long* pmode);
[propput, id(DISPID_DRAWSTYLE)]
HRESULT DrawStyle([in]long style);
[propget, id(DISPID_DRAWSTYLE)]
HRESULT DrawStyle([out, retval]long* pstyle);
[propput, id(DISPID_DRAWWIDTH)]
HRESULT DrawWidth([in]long width);
[propget, id(DISPID_DRAWWIDTH)]
HRESULT DrawWidth([out, retval]long* pwidth);
[propput, id(DISPID_FILLCOLOR)]
HRESULT FillColor([in]OLE_COLOR clr);
[propget, id(DISPID_FILLCOLOR)]
HRESULT FillColor([out, retval]OLE_COLOR* pclr);
[propput, id(DISPID_FILLSTYLE)]
HRESULT FillStyle([in]long style);
[propget, id(DISPID_FILLSTYLE)]
HRESULT FillStyle([out, retval]long* pstyle);
[propputref, id(DISPID_FONT)]
HRESULT Font([in]IFontDisp* pFont);
[propput, id(DISPID_FONT)]
HRESULT Font([in]IFontDisp* pFont);
[propget, id(DISPID_FONT)]
HRESULT Font([out, retval]IFontDisp** ppFont);
[propput, id(DISPID_FORECOLOR)]
HRESULT ForeColor([in]OLE_COLOR clr);
[propget, id(DISPID_FORECOLOR)]
HRESULT ForeColor([out,retval]OLE_COLOR* pclr);
[propput, id(DISPID_ENABLED)]
HRESULT Enabled([in]VARIANT_BOOL vbool);
[propget, id(DISPID_ENABLED)]
HRESULT Enabled([out,retval]VARIANT_BOOL* pbool);
[propget, id(DISPID_HWND)]
HRESULT Window([out, retval]LONG_PTR* phwnd); // was long* via the wizard, but doesn't compile Win64
[propput, id(DISPID_TABSTOP)]
HRESULT TabStop([in]VARIANT_BOOL vbool);
[propget, id(DISPID_TABSTOP)]
HRESULT TabStop([out, retval]VARIANT_BOOL* pbool);
[propput, id(DISPID_TEXT)]
HRESULT Text([in]BSTR strText);
[propget, id(DISPID_TEXT)]
HRESULT Text([out, retval]BSTR* pstrText);
[propput, id(DISPID_CAPTION)]
HRESULT Caption([in]BSTR strCaption);
[propget, id(DISPID_CAPTION)]
HRESULT Caption([out,retval]BSTR* pstrCaption);
[propput, id(DISPID_BORDERVISIBLE)]
HRESULT BorderVisible([in]VARIANT_BOOL vbool);
[propget, id(DISPID_BORDERVISIBLE)]
HRESULT BorderVisible([out, retval]VARIANT_BOOL* pbool);
[propput, id(DISPID_APPEARANCE)]
HRESULT Appearance([in]short appearance);
[propget, id(DISPID_APPEARANCE)]
HRESULT Appearance([out, retval]short* pappearance);
[propput, id(DISPID_MOUSEPOINTER)]
HRESULT MousePointer([in]long pointer);
[propget, id(DISPID_MOUSEPOINTER)]
HRESULT MousePointer([out, retval]long* ppointer);
[propputref, id(DISPID_MOUSEICON)]
HRESULT MouseIcon([in]IPictureDisp* pMouseIcon);
[propput, id(DISPID_MOUSEICON)]
HRESULT MouseIcon([in]IPictureDisp* pMouseIcon);
[propget, id(DISPID_MOUSEICON)]
HRESULT MouseIcon([out, retval]IPictureDisp** ppMouseIcon);
[propputref, id(DISPID_PICTURE)]
HRESULT Picture([in]IPictureDisp* pPicture);
[propput, id(DISPID_PICTURE)]
HRESULT Picture([in]IPictureDisp* pPicture);
[propget, id(DISPID_PICTURE)]
HRESULT Picture([out, retval]IPictureDisp** ppPicture);
[propput, id(DISPID_VALID)]
HRESULT Valid([in]VARIANT_BOOL vbool);
[propget, id(DISPID_VALID)]
HRESULT Valid([out, retval]VARIANT_BOOL* pbool);
};
// ---------------------------------------------------------------
[
uuid(11166000-DF8A-463a-B620-7BEC23542010),
version(1.0),
helpstring("Microsoft TV CA Type Library")
]
library MSTvCALib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
// ---------------------------------------------------
// CAUTION - if Change events below, need to perform:
// 1) compile the MIDL file to generate the typelib
// 2) In VCC class view, <xxx>->Implement Connection Point (_ICA<xxx>Events)
// to regenerate the CProxy_ICA<xxx>Events<> code.
// Need to browse to objd\i386 directory and select MSTvCA.tlb
// (The file MSTvCACP.h must be checked out.)
// Where <xxx> is Denials, Manager, Offers, Policies, Request, and Tolls
[
uuid(11166298-DF8A-463A-B620-7BEC23542010),
helpstring("_ICAResDenialTreeEvents Interface")
]
dispinterface _ICAResDenialTreeEvents
{
properties:
methods:
[id(1),helpstring("method PaidTollSelected")] HRESULT PaidTollSelected([in] ICAToll *pToll, [in] long fSelected);
};
[
uuid(11166200-DF8A-463A-B620-7BEC23542010),
helpstring("ICAManagerEvents Interface")
]
dispinterface _ICAManagerEvents
{
properties:
methods:
[id(2201),helpstring("method RequestActivated")] HRESULT RequestActivated([in] ICARequest *pReq);
[id(2202),helpstring("method RequestDeactivated")] HRESULT RequestDeactivated([in] ICARequest *pReq);
[id(2203),helpstring("method OfferAdded")] HRESULT OfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
[id(2204),helpstring("method OfferRemoved")] HRESULT OfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
[id(2205),helpstring("method PolicyAdded")] HRESULT PolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
[id(2206),helpstring("method PolicyRemoved")] HRESULT PolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
[id(2207),helpstring("method RequestDenialAdded")] HRESULT RequestDenialAdded([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
[id(2208),helpstring("method RequestDenialRemoved")] HRESULT RequestDenialRemoved([in] ICARequest *pReq, [in] ICADenial *pDenial,[in] long cDenials);
[id(2209),helpstring("method DenialTollAdded")] HRESULT DenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
[id(2210),helpstring("method DenialTollRemoved")] HRESULT DenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
[id(2211),helpstring("method TollDenialAdded")] HRESULT TollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
[id(2212),helpstring("method TollDenialRemoved")] HRESULT TollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
[id(2213),helpstring("method OfferTollAdded")] HRESULT OfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
[id(2214),helpstring("method OfferTollRemoved")] HRESULT OfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
[id(2215),helpstring("method TollStateChanged")] HRESULT TollStateChanged([in] ICAToll *pToll, [in] CATollState enState);
[id(2216),helpstring("method DenialStateChanged")] HRESULT DenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enState);
[id(2217),helpstring("method ComponentDenialAdded")] HRESULT ComponentDenialAdded([in] ICAComponent *pComp, [in] ICADenial *pDenial,[in] long cDenials);
[id(2218),helpstring("method ComponentDenialRemoved")] HRESULT ComponentDenialRemoved([in] ICAComponent *pComp, [in] ICADenial *pDenial,[in] long cDenials);
};
[
uuid(11166210-DF8A-463A-B620-7BEC23542010),
helpstring("ICARequestEvents Interface")
]
dispinterface _ICARequestEvents
{
properties:
methods:
[id(1), helpstring("method CheckStarted")] HRESULT CheckStarted([in] ICARequest *pRequest);
[id(2), helpstring("method CheckComplete")] HRESULT CheckComplete([in] ICARequest *pRequest,[in] long cDenials);
};
[
uuid(11166220-DF8A-463A-B620-7BEC23542010),
helpstring("_ICAPoliciesEvents Interface")
]
dispinterface _ICAPoliciesEvents
{
properties:
methods:
[id(1), helpstring("method ItemAdded")] HRESULT ItemAdded([in] ICAPolicy *pPolicy, long cPolicies);
[id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICAPolicy *pPolicy, long cPolicies);
};
[
uuid(11166230-DF8A-463A-B620-7BEC23542010),
helpstring("ICATollsEvents Interface")
]
dispinterface _ICATollsEvents
{
properties:
methods:
[id(1), helpstring("method ItemAdded")] HRESULT ItemAdded([in] ICAToll *pToll, [in] long cTolls);
[id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICAToll *pToll, [in] long cTolls);
[id(3), helpstring("method StateChanged")] HRESULT StateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
};
[
uuid(11166240-DF8A-463A-B620-7BEC23542010),
helpstring("ICADenialsEvents Interface")
]
dispinterface _ICADenialsEvents
{
properties:
methods:
[id(1), helpstring("method ItemAdded")] HRESULT ItemAdded([in] ICADenial *pDenial, [in] long cDenials);
[id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICADenial *pDenial, [in] long cDenials);
[id(3), helpstring("method StateChanged")] HRESULT StateChanged([in] ICADenial *pDenial, [in] CADenialState enStateFrom);
};
[
uuid(11166250-DF8A-463A-B620-7BEC23542010),
helpstring("ICAOffersEvents Interface")
]
dispinterface _ICAOffersEvents
{
properties:
methods:
[id(1), helpstring("method ItemAdded")] HRESULT ItemAdded([in] ICAOffer *pOffer, [in] long cOffers);
[id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICAOffer *pOffer, [in] long cOffers);
};
[
uuid(11166260-DF8A-463A-B620-7BEC23542010),
helpstring("_ICAComponentsEvents Interface")
]
dispinterface _ICAComponentsEvents
{
properties:
methods:
[id(1), helpstring("method ItemAdded")] HRESULT ItemAdded([in] ICAComponent *pComponent, [in] long cComponent);
[id(2), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] ICAComponent *pComponent, [in] long cComponent);
}; // --------------------------------
[
object,
dual,
uuid(11166300-DF8A-463a-B620-7BEC23542010),
helpstring("ICAManager Interface"),
pointer_default(unique)
]
interface ICAManager : IDispatch
{
[propget, id(1), helpstring("property Policies")] HRESULT Policies([out, retval] ICAPolicies **ppPolicies);
[propget, id(2), helpstring("property ActiveRequest")] HRESULT ActiveRequest([out, retval] ICARequest **ppRequest);
[propget, id(3), helpstring("property Offers")] HRESULT Offers([out, retval] ICAOffers **ppOffers);
[propget, id(4), helpstring("property PaidTolls")] HRESULT PaidTolls([out, retval] ICATolls **ppTolls);
[propput, id(5), helpstring("property UseDefaultUI")] HRESULT UseDefaultUI([in] long fUseDefaultUI);
[propget, id(5), helpstring("property UseDefaultUI")] HRESULT UseDefaultUI([out, retval] long *pfUseDefaultUI);
[propget, id(6), helpstring("property DenialsFor")] HRESULT DenialsFor([in] IUnknown *pUnk, [out, retval] ICADenials **ppDenials);
};
[
object,
uuid(11166310-DF8A-463a-B620-7BEC23542010),
dual,
helpstring("ICARequest Interface"),
pointer_default(unique)
]
interface ICARequest : IDispatch
{
[propget, id(1), helpstring("property RequestedItem")] HRESULT RequestedItem([out, retval] IUnknown **ppTunereq);
[propget, id(2), helpstring("property CAManager")] HRESULT CAManager([out, retval] ICAManager **ppManager);
[propget, id(3), helpstring("property ScheduleEntry")] HRESULT ScheduleEntry([out, retval] IUnknown **ppUnkScheduleEntry); // IScheduleEntry?
[propget, id(4), helpstring("property Denials")] HRESULT Denials([out, retval] ICADenials **ppDenials);
[propget, id(5), helpstring("property Components")] HRESULT Components([out, retval] ICAComponents **pComponents);
[propget, id(6), helpstring("property Check")] HRESULT Check([out, retval] long *pcDenials);
[propget, id(7), helpstring("property ResolveDenials")] HRESULT ResolveDenials([out, retval] long *pcDenials);
[propget, id(8), helpstring("property CountDeniedComponents")] HRESULT CountDeniedComponents([out, retval] long *pcDeniedComponents);
};
[
object,
uuid(11166320-DF8A-463a-B620-7BEC23542010),
helpstring("ICAPolicy Interface"), // client written
pointer_default(unique)
]
interface ICAPolicy : IUnknown // -- not IDispatch, let the client side implement that interface
{
[propget, id(0), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pbstr);
[ id(1), helpstring("method CheckRequest")] HRESULT CheckRequest([in] ICARequest *pReq);
// [propget, id(2), helpstring("property CAManager")] HRESULT CAManager([out, retval] ICAManager **ppManager);
[propput, id(2), helpstring("property CAManager")] HRESULT CAManager([in] ICAManager *pManager);
[propget, id(3), helpstring("property OkToPersist")] HRESULT OkToPersist([out, retval] BOOL *pfOkToPersist);
[propget, id(4), helpstring("property OkToRemove")] HRESULT OkToRemove([out, retval] BOOL *pfOkToRemove);
[propget, id(5), helpstring("property OkToRemoveDenial")] HRESULT OkToRemoveDenial(ICADenial *pDenial, [out, retval] BOOL *pfOk);
[propget, id(6), helpstring("property OkToRemoveOffer")] HRESULT OkToRemoveOffer(ICAOffer *pOffer, [out, retval] BOOL *pfOk);
}
[
object,
uuid(11166330-DF8A-463a-B620-7BEC23542010),
dual,
helpstring("ICAToll Interface"), // also client written
pointer_default(unique)
]
interface ICAToll : IUnknown // -- also not IDispatch - client side implements that interface
{
// [propget, id(1), helpstring("property CAManager")] HRESULT CAManager([out, retval] ICAManager **ppManager);
[propput, id(1), helpstring("property CAManager")] HRESULT CAManager([in] ICAManager *pManager);
[ id(2), helpstring("method Select")] HRESULT Select([in] BOOL fSelect);
[ id(3), helpstring("method PayToll")] HRESULT PayToll();
[propget, id(4), helpstring("property Refundable")] HRESULT Refundable([out, retval] BOOL *pfRefundable);
[ id(5), helpstring("method RefundToll")] HRESULT RefundToll();
[propget, id(6), helpstring("property TolledObject")] HRESULT TolledObject([out, retval] IUnknown **ppUnkTolled);
[propget, id(7), helpstring("property Denials")] HRESULT Denials([out, retval] ICADenials **ppDenials);
[propget, id(8), helpstring("property Policy")] HRESULT Policy([out, retval] ICAPolicy **ppPolicy);
[propget, id(9), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
[propget, id(10),helpstring("property TimePaid")] HRESULT TimePaid([out, retval] DATE *pdtPaid);
[propget, id(11),helpstring("property State")] HRESULT State([out, retval] CATollState *penState);
};
[
object,
uuid(11166340-DF8A-463a-B620-7BEC23542010),
dual,
helpstring("ICADenial Interface"),
pointer_default(unique)
]
interface ICADenial : IDispatch
{
[propget, id(1), helpstring("property DeniedObject")] HRESULT DeniedObject([out, retval] IUnknown **ppUnkDenied);
[propget, id(2), helpstring("property Policy")] HRESULT Policy([out, retval] ICAPolicy **ppPolicy);
[propget, id(3), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
[propput, id(3), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [in] BSTR bstr);
[propget, id(4), helpstring("property State")] HRESULT State([out, retval] CADenialState *penState);
[propput, id(4), helpstring("property State")] HRESULT State([in] CADenialState enState);
[propget, id(5), helpstring("property Tolls")] HRESULT Tolls([out, retval] ICATolls **ppTolls);
[ id(6), helpstring("method NotifyTollStateChanged")] HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
};
[
object,
uuid(11166350-DF8A-463a-B620-7BEC23542010),
dual,
helpstring("ICAOffer Interface"),
pointer_default(unique)
]
interface ICAOffer : IDispatch
{
[propget, id(1), helpstring("property CAManager")] HRESULT CAManager([out, retval] ICAManager **ppManager);
[propput, id(1), helpstring("property CAManager")] HRESULT CAManager([in] ICAManager *pManager);
[propget, id(2), helpstring("property Policy")] HRESULT Policy([out, retval] ICAPolicy **pppolicy);
[propget, id(3), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [out, retval] BSTR *pbstr);
[propput, id(3), helpstring("property Description")] HRESULT Description([in] CADescFormat enFormat, [in] BSTR bstr);
[propget, id(4), helpstring("property StartTime")] HRESULT StartTime([out, retval] DATE *pdtStart);
[propget, id(5), helpstring("property EndTime")] HRESULT EndTime([out, retval] DATE *pdtEnd);
[propget, id(6), helpstring("property Tolls")] HRESULT Tolls([out, retval] ICATolls **ppTolls);
[ id(7), helpstring("method NotifyTollStateChanged")] HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateFrom);
};
[
object,
uuid(11166360-DF8A-463a-B620-7BEC23542010),
dual,
helpstring("ICAComponent Interface"),
pointer_default(unique)
]
interface ICAComponent : IDispatch
{
[propget, id(1), helpstring("property Component")] HRESULT Component([out, retval] IComponent **ppComponent);
[propget, id(2), helpstring("property Denials")] HRESULT Denials([out, retval] ICADenials **ppDenials);
[propget, id(3), helpstring("property Request")] HRESULT Request([out, retval] ICARequest **ppComponent);
};
// --------------------------------
[
uuid(11166100-DF8A-463a-B620-7BEC23542010),
helpstring("CAManager Class")
]
coclass CAManager
{
[default] interface ICAManager;
interface ICAManagerInternal;
// interface ICAManagerXProxy; // this is the actual outgoing 'event' interface
[default, source] dispinterface _ICAManagerEvents;
};
[ // magic class used to avoid circular references through the CAManager.
hidden,
uuid(11166101-DF8A-463a-B620-7BEC23542010),
helpstring("CAManagerProxy Class")
]
coclass CAManagerProxy
{
[default] interface ICAManager;
interface ICAManagerInternal;
// [default, source] dispinterface _ICAManagerEvents; /// QUESTION ??? DO I want these just here, or in the true Manager, or both?
};
[
uuid(11166540-DF8A-463a-B620-7BEC23542010), // needed for user's tolls.
helpstring("CADenials Class")
]
coclass CADenials
{
[default] interface ICADenials;
interface ICADenialsInternal;
[default, source] dispinterface _ICADenialsEvents;
};
// TODO - mark this as hidden...
[
uuid(11166550-DF8A-463a-B620-7BEC23542010),
helpstring("CAOffer Class")
]
coclass CAOffer
{
[default] interface ICAOffer;
};
/* [
uuid(11166999-DF8A-463a-B620-7BEC23542010),
helpstring("CATempEvent_TempBuilder Class - used so we can build events the first time")
]
coclass CATempEvent_TempBuilder
{
[source] dispinterface _ICAResDenialTreeEvents;
[source] dispinterface _ICAManagerEvents;
[source] dispinterface _ICARequestEvents;
[source] dispinterface _ICATollsEvents;
[source] dispinterface _ICADenialsEvents;
[source] dispinterface _ICAPoliciesEvents;
[source] dispinterface _ICAOffersEvents;
[source] dispinterface _ICAComponentsEvents;
};
*/
// -----------------------------------
[
object,
uuid(11166898-DF8A-463a-B620-7BEC23542010),
dual,
helpstring("ICAResDenialTree Interface"),
pointer_default(unique)
]
interface ICAResDenialTree : IDispatch
{
[propget, id(1), helpstring("property CAManager")] HRESULT CAManager([out, retval] ICAManager **ppCAManager);
[propput, id(1), helpstring("property CAManager")] HRESULT CAManager([in] ICAManager *pCAManager);
[propget, id(2), helpstring("property DisplayFields")] HRESULT DisplayFields([out, retval] long *penFields); // fields to display in default ResDenial UI
[propput, id(2), helpstring("property DisplayFields")] HRESULT DisplayFields([in] long enFields); // fields to display in default ResDenial UI
[ id(3), helpstring("method UpdateView")] HRESULT UpdateView([in] IUnknown *pUnk); // if object is being viewed, updates it.
// ResDenial control listens to these incoming sink events sent by Manager ((_ICAManagerEvents).. ID's Must match
[ id(2201),helpstring("method NotifyRequestActivated")] HRESULT NotifyRequestActivated([in] ICARequest *preq);
[ id(2202),helpstring("method NotifyRequestDeactivated")] HRESULT NotifyRequestDeactivated([in] ICARequest *preq);
[ id(2203),helpstring("method NotifyOfferAdded")] HRESULT NotifyOfferAdded([in] ICAOffer *pOffer,[in] long cOffers);
[ id(2204),helpstring("method NotifyOfferRemoved")] HRESULT NotifyOfferRemoved([in] ICAOffer *pOffer,[in] long cOffers);
[ id(2205),helpstring("method NotifyPolicyAdded")] HRESULT NotifyPolicyAdded([in] ICAPolicy *pPolicy,[in] long cPolicies);
[ id(2206),helpstring("method NotifyPolicyRemoved")] HRESULT NotifyPolicyRemoved([in] ICAPolicy *pPolicy,[in] long cPolicies);
[ id(2207),helpstring("method NotifyRequestDenialAdded")] HRESULT NotifyRequestDenialAdded([in] ICARequest *preq, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2208),helpstring("method NotifyRequestDenialRemoved")] HRESULT NotifyRequestDenialRemoved([in] ICARequest *preq, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2209),helpstring("method NotifyDenialTollAdded")] HRESULT NotifyDenialTollAdded([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
[ id(2210),helpstring("method NotifyDenialTollRemoved")] HRESULT NotifyDenialTollRemoved([in] ICADenial *pDenial, [in] ICAToll *pToll, [in] long cTolls);
[ id(2211),helpstring("method NotifyTollDenialAdded")] HRESULT NotifyTollDenialAdded([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2212),helpstring("method NotifyTollDenialRemoved")] HRESULT NotifyTollDenialRemoved([in] ICAToll *pToll, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2213),helpstring("method NotifyOfferTollAdded")] HRESULT NotifyOfferTollAdded([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
[ id(2214),helpstring("method NotifyOfferTollRemoved")] HRESULT NotifyOfferTollRemoved([in] ICAOffer *pOffer, [in] ICAToll *pToll, [in] long cTolls);
[ id(2215),helpstring("method NotifyTollStateChanged")] HRESULT NotifyTollStateChanged([in] ICAToll *pToll, [in] CATollState enStateLast);
[ id(2216),helpstring("method NotifyDenialStateChanged")] HRESULT NotifyDenialStateChanged([in] ICADenial *pDenial, [in] CADenialState enStateLast);
[ id(2217),helpstring("method NotifyComponentDenialAdded")] HRESULT NotifyComponentDenialAdded([in] ICAComponent *preq, [in] ICADenial *pDenial,[in] long cDenials);
[ id(2218),helpstring("method NotifyComponentDenialRemoved")] HRESULT NotifyComponentDenialRemoved([in] ICAComponent *preq, [in] ICADenial *pDenial,[in] long cDenials);
};
[
uuid(11166998-DF8A-463a-B620-7BEC23542010),
helpstring("CA Default RequestDenial Control")
]
coclass CAResDenialTree
{
[default] interface ICAResDenialTree;
[default, source] dispinterface _ICAResDenialTreeEvents;
};
// -----------------------------
[
uuid(11166991-DF8A-463a-B620-7BEC23542010),
helpstring("_ICADefaultDlgEvents Interface")
]
dispinterface _ICADefaultDlgEvents
{
properties:
methods:
};
[
uuid(11166990-DF8A-463a-B620-7BEC23542010),
helpstring("CADefaultDlg Class")
]
coclass CADefaultDlg
{
[default] interface ICADefaultDlg;
[default, source] dispinterface _ICADefaultDlgEvents;
};
// -------------------------------------
// Magic way to define the SID_ ...
cpp_quote("#define SID_CAManager CLSID_CAManager")
};

View File

@ -1,820 +0,0 @@
//------------------------------------------------------------------------------
// File: GuideStore.idl
//
// Desc: IDL source for GuideStore.dll.
//
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// This file will be processed by the MIDL tool to
// produce the type library (GuideStore.tlb) and marshalling code.
import "oaidl.idl";
import "ocidl.idl";
interface IObjects;
interface IMetaProperties;
interface IMetaProperty;
interface IMetaPropertyCondition;
interface IMetaPropertySet;
interface IMetaPropertySets;
interface IMetaPropertyType;
interface IMetaPropertyTypes;
interface IGuideStore;
interface IService;
interface IServices;
interface IProgram;
interface IPrograms;
interface IScheduleEntry;
interface IScheduleEntries;
interface IChannel;
interface IChannels;
interface IChannelLineup;
interface IChannelLineups;
interface IGuideDataProvider;
interface IGuideDataProviders;
#define didAdd 10
#define didAddAt 15
#define didAddNew 20
#define didAddNewAt 25
#define didAnd 30
#define didBeginTrans 35
#define didChannelLineups 40
#define didChannels 50
#define didCommitTrans 55
#define didCond 60
#define didCopyrightDate 70
#define didCount 80
#define didDataEndTime 90
#define didDefaultValue 100
#define didDescription 110
#define didEndTime 120
#define didGuideDataProvider 135
#define didGuideDataProviders 136
#define didID 150
#define didIdOf 155
#define didIID 170
#define didIsAnyDataAvailable 180
#define didInit 190
#define didItem DISPID_VALUE
#define didItemAdded 195
#define didItemChanged 196
#define didItemRemoved 197
#define didItemsByKey 198
#define didItemsChanged 199
#define didItemsInTimeRange 200
#define didItemsWithCond 210
#define didItemWithKey 215
#define didItemsWithMetaProp 220
#define didItemsWithMetaPropType 230
#define didItemsWithService 240
#define didItemsWithType 400
#define didItemWithID 250
#define didItemWithIID 260
#define didItemWithName 270
#define didItemWithMetaPropTypeLang 280
#define didItemWithTypeProviderLang 285
#define didItemWithProviderName 290
#define didItemWithServiceAtTime 300
#define didLanguage 310
#define didLength 320
#define didLookup 325
#define didMax 330
#define didMin 340
#define didName 350
#define didNew 360
#define didNewCollection 370
#define didNot 380
#define didObjects 390
#define didObjectTypes 410
#define didOpen 420
#define didOr 430
#define didProgram 440
#define didPrograms 450
#define didRollbackTrans 455
#define didMetaProperties 460
#define didMetaPropertiesOf 465
#define didMetaPropertySet 470
#define didMetaPropertySets 480
#define didMetaPropertyType 490
#define didMetaPropertyTypes 500
#define didProviderDescription 510
#define didProviderName 520
#define didProviderNetworkName 530
#define didResync 535
#define didItemInvRelBy 540
#define didItemsInvRelBy 545
#define didItemsInvRelToBy 546
#define didItemRelBy 550
#define didItemsRelBy 555
#define didItemsRelToBy 556
#define didRemove 560
#define didRemoveAll 565
#define didSchedEntries 570
#define didService 580
#define didServices 590
#define didStartTime 600
#define didTitle 620
#define didType 630
#define didTuneRequest 640
#define didUnreferencedItems 650
#define didValue DISPID_VALUE
[
uuid(8D9EEDCE-21E9-4845-82A8-99CEC53E6DB2),
version(1.0),
helpstring("Microsoft TV GuideStore 1.0 Type Library")
]
library MSTVGS
{
importlib("stdole2.tlb");
[
object,
uuid(F71020D2-A467-4EB7-839A-63C8F40C7AB4),
dual,
helpstring("IMetaPropertySet Interface"),
pointer_default(unique)
]
interface IMetaPropertySet : IDispatch
{
[propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
[propget, id(didMetaPropertyTypes), helpstring("property MetaPropertyTypes")] HRESULT MetaPropertyTypes([out, retval] IMetaPropertyTypes* *pVal);
};
[
object,
uuid(E8FD768C-EC4E-4DAB-A09C-011E8ECAE4D2),
dual,
helpstring("IMetaPropertySets Interface"),
pointer_default(unique),
nonextensible
]
interface IMetaPropertySets : IDispatch
{
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT index, [out, retval] IMetaPropertySet* *ppropset);
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
[propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IMetaPropertySet* *ppropset);
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(BSTR bstrName, [out, retval] IMetaPropertySet **pppropset);
[propget, id(didLookup), helpstring("property Lookup")] HRESULT Lookup([in] BSTR bstr, [out, retval] IMetaPropertyType * *ppproptype);
};
[
object,
uuid(86502400-213B-4ADF-A1E2-76365E7172BD),
dual,
helpstring("IMetaPropertyType Interface"),
pointer_default(unique)
]
interface IMetaPropertyType : IDispatch
{
[propget, id(didMetaPropertySet), helpstring("property MetaPropertySet")] HRESULT MetaPropertySet([out, retval] IMetaPropertySet* *ppropset);
[propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
[propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
[propget, id(didNew), helpstring("property New")] HRESULT New(long lang, VARIANT val, [out, retval] IMetaProperty* *pprop);
[propget, id(didCond), helpstring("property Cond")] HRESULT Cond(BSTR bstrCond, long lang, VARIANT varValue, [out, retval] IMetaPropertyCondition* *ppropcond);
};
[
object,
uuid(9BF4984A-4CFE-4588-9FCF-828C74EF7104),
dual,
helpstring("IMetaPropertyTypes Interface"),
pointer_default(unique)
]
interface IMetaPropertyTypes : IDispatch
{
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT index, [out, retval] IMetaPropertyType* *pproptype);
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
[propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IMetaPropertyType* *pproptype);
[propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IMetaPropertyType* *pproptype);
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(long id, BSTR bstrName, [out, retval] IMetaPropertyType * *pVal);
[propget, id(didMetaPropertySet), helpstring("property MetaPropertySet")] HRESULT MetaPropertySet([out, retval] IMetaPropertySet * *pVal);
};
[
object,
uuid(A4BBD2C0-D7E4-4FC2-8FB0-176DDBCB3D72),
dual,
helpstring("IMetaProperty Interface"),
pointer_default(unique)
]
interface IMetaProperty : IDispatch
{
[propget, id(didMetaPropertyType), helpstring("property MetaPropertyType")] HRESULT MetaPropertyType([out, retval] IMetaPropertyType* *pproptype);
[propget, id(didLanguage), helpstring("property Language")] HRESULT Language([out, retval] long *pVal);
[propget, id(didGuideDataProvider), helpstring("property GuideDataProvider")] HRESULT GuideDataProvider([out, retval] IGuideDataProvider **ppprovider);
[propget, id(didValue), helpstring("property Value")] HRESULT Value([out, retval] VARIANT *pvarValue);
[propput, id(didValue), helpstring("property Value")] HRESULT Value([in] VARIANT varValue);
[propputref, id(didValue), helpstring("property Value")] HRESULT Value([in] IUnknown *punk);
[propget, id(didCond), helpstring("property Cond")] HRESULT Cond(BSTR bstrCond, [out, retval] IMetaPropertyCondition* *ppropcond);
};
[
object,
uuid(E7F78F69-8326-48A0-8E54-BBDCEE43BA70),
dual,
helpstring("IMetaProperties Interface"),
pointer_default(unique)
]
interface IMetaProperties : IDispatch
{
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT index, [out, retval] IMetaProperty* *pprop);
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
[propget, id(didItemWithMetaPropTypeLang), helpstring("property ItemWith")] HRESULT ItemWith(IMetaPropertyType *ptype, long lang, [out, retval] IMetaProperty* *pprop);
[propget, id(didItemWithTypeProviderLang), helpstring("property ItemWithTypeProviderLang")] HRESULT ItemWithTypeProviderLang(IMetaPropertyType *ptype, IGuideDataProvider *pprovider, long lang, [out, retval] IMetaProperty* *pprop);
[propget, id(didItemsWithMetaPropType), helpstring("property ItemsWithMetaPropertyType")] HRESULT ItemsWithMetaPropertyType(IMetaPropertyType *ptype, [out, retval] IMetaProperties* *pprops);
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(IMetaPropertyType *pproptype, long lang, VARIANT varValue, [out, retval] IMetaProperty * *pVal);
[id(didAdd), helpstring("method Add")] HRESULT Add(IMetaProperty *pprop);
};
[
object,
uuid(98FAAEF5-397A-4372-93A3-FB3DA49B3EF1),
dual,
helpstring("IMetaPropertyCondition Interface"),
pointer_default(unique)
]
interface IMetaPropertyCondition : IDispatch
{
[propget, id(didAnd), helpstring("property And")] HRESULT And(IMetaPropertyCondition *pcond2, [out, retval] IMetaPropertyCondition* *ppropcond);
[propget, id(didOr), helpstring("property Or")] HRESULT Or(IMetaPropertyCondition *pcond2, [out, retval] IMetaPropertyCondition* *ppropcond);
};
[
object,
uuid(E4A9F7DA-F38F-43D3-AB3B-7E9F9FB7A7C7),
dual,
helpstring("IGuideStore Interface"),
pointer_default(unique)
]
interface IGuideStore : IDispatch
{
[propget, id(didIID), helpstring("property UUID")] HRESULT UUID([out, retval] BSTR *bstrUUID);
[propget, id(didServices), helpstring("property Services")] HRESULT Services([out, retval] IServices * *pVal);
[propget, id(didPrograms), helpstring("property Programs")] HRESULT Programs([out, retval] IPrograms * *pVal);
[propget, id(didSchedEntries), helpstring("property ScheduleEntries")] HRESULT ScheduleEntries([out, retval] IScheduleEntries * *pVal);
[propget, id(didGuideDataProviders), helpstring("property GuideDataProviders")] HRESULT GuideDataProviders([out, retval] IGuideDataProviders * *ppdataproviders);
[propget, id(didMetaPropertySets), helpstring("property MetaPropertySets")] HRESULT MetaPropertySets([out, retval] IMetaPropertySets **pppropsets);
[id(didOpen), helpstring("method Open")] HRESULT Open(BSTR bstrName);
[propget, id(didObjects), helpstring("property Objects")] HRESULT Objects([out, retval] IObjects * *ppobjs);
[propget, id(didChannels), helpstring("property Channels")] HRESULT Channels([out, retval] IChannels * *pVal);
[propget, id(didChannelLineups), helpstring("property ChannelLineups")] HRESULT ChannelLineups([out, retval] IChannelLineups * *pVal);
[propget, id(didGuideDataProvider), helpstring("property ActiveGuideDataProvider")] HRESULT ActiveGuideDataProvider([out, retval] IGuideDataProvider * *pVal);
[propputref, id(didGuideDataProvider), helpstring("property ActiveGuideDataProvider")] HRESULT ActiveGuideDataProvider([in] IGuideDataProvider * newVal);
[propget, id(didIdOf), helpstring("property IdOf")] HRESULT IdOf([in] IUnknown *punk, [out, retval] long *pVal);
[propget, id(didMetaPropertiesOf), helpstring("property MetaPropertiesOf")] HRESULT MetaPropertiesOf([in] IUnknown *punk, [out, retval] IMetaProperties **ppprops);
[id(didBeginTrans), helpstring("method BeginTrans")] HRESULT BeginTrans();
[id(didCommitTrans), helpstring("method CommitTrans")] HRESULT CommitTrans();
[id(didRollbackTrans), helpstring("method RollbackTrans")] HRESULT RollbackTrans();
};
[
uuid(E7267FA2-7EC0-4577-BE37-0BBF11028A56),
helpstring("MetaPropertySet Class")
]
coclass MetaPropertySet
{
[default] interface IMetaPropertySet;
};
[
uuid(027D8BB9-B860-4B96-B498-7EA609F33250),
helpstring("MetaPropertySets Class")
]
coclass MetaPropertySets
{
[default] interface IMetaPropertySets;
};
[
uuid(A09139F3-47ED-4492-A45E-F7F11B121F4F),
helpstring("MetaPropertyType Class")
]
coclass MetaPropertyType
{
[default] interface IMetaPropertyType;
};
[
uuid(5F24A17F-1DDE-4F37-8B29-489229175C73),
helpstring("MetaPropertyTypes Class")
]
coclass MetaPropertyTypes
{
[default] interface IMetaPropertyTypes;
};
[
uuid(A42A1FF3-BC43-4714-8B94-06103474372B),
helpstring("MetaProperty Class")
]
coclass MetaProperty
{
[default] interface IMetaProperty;
};
[
uuid(78B8FA05-01B2-4B0A-B6E0-59FC6C0E7A5E),
helpstring("MetaProperties Class")
]
coclass MetaProperties
{
[default] interface IMetaProperties;
};
[
uuid(3B575572-EC9F-447D-9554-17C6E92E8328),
helpstring("MetaPropertyCondition Class")
]
coclass MetaPropertyCondition
{
[default] interface IMetaPropertyCondition;
};
[
object,
uuid(59745450-F0F4-4B3F-B49E-55664E425CF6),
dual,
helpstring("IService Interface"),
pointer_default(unique)
]
interface IService : IDispatch
{
[propget, id(didTuneRequest), helpstring("property TuneRequest")] HRESULT TuneRequest([out, retval] IUnknown * *ppunk);
[propputref, id(didTuneRequest), helpstring("property TuneRequest")] HRESULT TuneRequest([in] IUnknown *punk);
[propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
[propget, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([out, retval] DATE *pdt);
[propput, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([in] DATE dt);
[propget, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([out, retval] DATE *pdt);
[propput, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([in] DATE dt);
[propget, id(didProviderName), helpstring("property ProviderName")] HRESULT ProviderName([out, retval] BSTR *pbstrName);
[propput, id(didProviderName), helpstring("property ProviderName")] HRESULT ProviderName([in] BSTR bstrName);
[propget, id(didProviderNetworkName), helpstring("property ProviderNetworkName")] HRESULT ProviderNetworkName([out, retval] BSTR *pbstrName);
[propput, id(didProviderNetworkName), helpstring("property ProviderNetworkName")] HRESULT ProviderNetworkName([in] BSTR bstrName);
[propget, id(didProviderDescription), helpstring("property ProviderDescription")] HRESULT ProviderDescription([out, retval] BSTR *pbstrDesc);
[propput, id(didProviderDescription), helpstring("property ProviderDescription")] HRESULT ProviderDescription([in] BSTR bstrDescr);
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
[propget, id(didSchedEntries), helpstring("property ScheduleEntries")] HRESULT ScheduleEntries([out, retval] IScheduleEntries * *pVal);
};
[
object,
uuid(D3517044-B747-42C0-AFD5-31265ABA4977),
dual,
helpstring("IServices Interface"),
pointer_default(unique)
]
interface IServices : IDispatch
{
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IService * *pVal);
[propget, id(didChannelLineups), helpstring("property ChannelLineups")] HRESULT ChannelLineups([out, retval] IChannelLineups * *pVal);
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
[propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IService * *pVal);
[propget, id(didItemWithProviderName), helpstring("property ItemWithProviderName")] HRESULT ItemWithProviderName(BSTR bstrProviderName, [out, retval] IService * *pVal);
[propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IServices * *ppservices);
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IServices * *ppservices);
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(IUnknown *punkTuneRequest, BSTR bstrProviderName, BSTR bstrProviderDescription, BSTR bstrProviderNetworkName, DATE dtStart, DATE dtEnd, [out, retval] IService * *pVal);
[propget, id(didItemsInTimeRange), helpstring("property ItemsInTimeRange")] HRESULT ItemsInTimeRange(DATE dtStart, DATE dtEnd, [out, retval] IServices * *pVal);
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
[id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IServices **ppservices);
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IServices * *ppservices);
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IService * *ppservice);
[id(didResync), helpstring("method Resync")] HRESULT Resync();
};
[
uuid(C4001F96-2DEE-4C33-B807-F829889A8CCD),
helpstring("GuideStore Class")
]
coclass GuideStore
{
[default] interface IGuideStore;
};
[
uuid(957D8D57-32B1-4BE3-8E37-EC8849F16815),
helpstring("Service Class")
]
coclass Service
{
[default] interface IService;
};
[
uuid(CCFB9EC5-E28E-4DE1-BD07-1C79303DE0A0),
helpstring("IServicesEvents Interface")
]
dispinterface IServicesEvents
{
properties:
methods:
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IService *pservice);
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IService *pservice);
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
};
[
object,
uuid(FC91783E-5703-4319-A5B1-19555059559C),
dual,
helpstring("IProgram Interface"),
pointer_default(unique)
]
interface IProgram : IDispatch
{
[propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
[propget, id(didSchedEntries), helpstring("property ScheduleEntries")] HRESULT ScheduleEntries([out, retval] IScheduleEntries * *pVal);
[propget, id(didTitle), helpstring("property Title")] HRESULT Title([out, retval] BSTR *pVal);
[propput, id(didTitle), helpstring("property Title")] HRESULT Title([in] BSTR newVal);
[propget, id(didDescription), helpstring("property Description")] HRESULT Description([out, retval] BSTR *pVal);
[propput, id(didDescription), helpstring("property Description")] HRESULT Description([in] BSTR newVal);
[propget, id(didCopyrightDate), helpstring("property CopyrightDate")] HRESULT CopyrightDate([out, retval] DATE *pVal);
[propput, id(didCopyrightDate), helpstring("property CopyrightDate")] HRESULT CopyrightDate([in] DATE newVal);
};
[
object,
uuid(8786250A-8EF8-4A51-B80A-643CCF835DB6),
dual,
helpstring("IPrograms Interface"),
pointer_default(unique)
]
interface IPrograms : IDispatch
{
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IProgram * *pVal);
[propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IProgram * *pVal);
[propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IPrograms * *pVal);
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IPrograms * *pVal);
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew([out, retval] IProgram * *ppprog);
[id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IPrograms **ppprogs);
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IPrograms * *ppprogs);
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IProgram * *ppprog);
[id(didResync), helpstring("method Resync")] HRESULT Resync();
};
[
uuid(43F457D2-C955-48E2-91AD-B91C9154C613),
helpstring("Services Class")
]
coclass Services
{
[default] interface IServices;
[default, source] dispinterface IServicesEvents;
};
[
uuid(C51F670A-7D1A-494E-931D-886BFDB2B438),
helpstring("Program Class")
]
coclass Program
{
[default] interface IProgram;
};
[
uuid(9AB9E463-1EC4-4D6B-AC80-5238561918EE),
helpstring("IProgramsEvents Interface")
]
dispinterface IProgramsEvents
{
properties:
methods:
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IProgram *pprog);
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IProgram *pprog);
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
};
[
object,
uuid(6C46F789-2156-4AF0-97D7-38D99E2C9160),
dual,
helpstring("IScheduleEntry Interface"),
pointer_default(unique)
]
interface IScheduleEntry : IDispatch
{
[propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
[propget, id(didService), helpstring("property Service")] HRESULT Service([out, retval] IService * *ppservice);
[propputref, id(didService), helpstring("property Service")] HRESULT Service([in] IService * pservice);
[propget, id(didProgram), helpstring("property Program")] HRESULT Program([out, retval] IProgram * *ppprog);
[propputref, id(didProgram), helpstring("property Program")] HRESULT Program([in] IProgram * pprog);
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
[propget, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([out, retval] DATE *pdt);
[propput, id(didStartTime), helpstring("property StartTime")] HRESULT StartTime([in] DATE dt);
[propget, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([out, retval] DATE *pdt);
[propput, id(didEndTime), helpstring("property EndTime")] HRESULT EndTime([in] DATE dt);
[propget, id(didLength), helpstring("property Length")] HRESULT Length([out, retval] long *pVal);
};
[
object,
uuid(E5FDD9C4-8E60-4BEB-BBC8-93BE39C75BAA),
dual,
helpstring("IScheduleEntries Interface"),
pointer_default(unique)
]
interface IScheduleEntries : IDispatch
{
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IScheduleEntry * *pVal);
[propget, id(didItemWithServiceAtTime), helpstring("property ItemWithServiceAtTime")] HRESULT ItemWithServiceAtTime(IService *pservice, DATE dt, [out, retval] IScheduleEntry * *pVal);
[propget, id(didItemsWithService), helpstring("property ItemsWithService")] HRESULT ItemsWithService(IService *pservice, [out, retval] IScheduleEntries **ppschedentries);
[propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IScheduleEntries * *pVal);
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IScheduleEntries * *pVal);
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(DATE dtStart, DATE dtEnd, IService *pservice, IProgram *pprog, [out, retval] IScheduleEntry * *pVal);
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
[propget, id(didItemsInTimeRange), helpstring("property ItemsInTimeRange")] HRESULT ItemsInTimeRange(DATE dtStart, DATE dtEnd, [out, retval] IScheduleEntries * *pVal);
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IScheduleEntries * *ppschedentries);
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IScheduleEntry * *ppschedentry);
[id(didResync), helpstring("method Resync")] HRESULT Resync();
};
[
uuid(16C9C579-B3F4-4C94-88EC-A65EA0B839E7),
helpstring("Programs Class")
]
coclass Programs
{
[default] interface IPrograms;
[default, source] dispinterface IProgramsEvents;
};
[
uuid(AFEBCA90-0FF9-48BD-BC98-95477A631BBB),
helpstring("ScheduleEntry Class")
]
coclass ScheduleEntry
{
[default] interface IScheduleEntry;
};
[
uuid(32692A48-F4B5-4826-BE88-E7F8ED9E65DC),
helpstring("IScheduleEntriesEvents Interface")
]
dispinterface IScheduleEntriesEvents
{
properties:
methods:
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IScheduleEntry *pschedentry);
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IScheduleEntry *pschedentry);
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
};
[
object,
uuid(ED7DF8CD-4861-4389-8149-8EDE63A51F38),
dual,
helpstring("IChannel Interface"),
pointer_default(unique)
]
interface IChannel : IDispatch
{
[propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
[propput, id(didName), helpstring("property Name")] HRESULT Name([in] BSTR newVal);
[propget, id(didService), helpstring("property Service")] HRESULT Service([out, retval] IService * *ppservice);
[propputref, id(didService), helpstring("property Service")] HRESULT Service([in] IService *pservice);
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
[propget, id(didChannelLineups), helpstring("property ChannelLineups")] HRESULT ChannelLineups([out, retval] IChannelLineups * *pVal);
};
[
uuid(226D6AD0-7026-494F-BCAD-FAB087E67290),
helpstring("ScheduleEntries Class")
]
coclass ScheduleEntries
{
[default] interface IScheduleEntries;
[default, source] dispinterface IScheduleEntriesEvents;
};
[
object,
uuid(3BAE53BD-70F0-4C7B-8C9E-E0317FFF8D79),
dual,
helpstring("IChannels Interface"),
pointer_default(unique)
]
interface IChannels : IDispatch
{
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IChannel * *pVal);
[id(didAddAt), helpstring("method AddAt")] HRESULT AddAt(IChannel *pchan, long index);
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT index);
[propget, id(didAddNewAt), helpstring("property AddNewAt")] HRESULT AddNewAt(IService *pservice, BSTR bstrName, long index, [out, retval] IChannel * *pVal);
[propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IChannel **ppchan);
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IChannels * *ppchannels);
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
[id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IChannels **ppchans);
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IChannels * *ppchans);
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IChannel * *ppchan);
[id(didResync), helpstring("method Resync")] HRESULT Resync();
};
[
uuid(83568B75-1FCC-4853-957A-9CF617B350A3),
helpstring("Channel Class")
]
coclass Channel
{
[default] interface IChannel;
};
[
uuid(6E945C62-0AB7-4D89-BB9E-212502FC7C88),
helpstring("IChannelsEvents Interface")
]
dispinterface IChannelsEvents
{
properties:
methods:
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IChannel *pchan);
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IChannel *pchan);
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
};
[
object,
uuid(AB3FF8DB-C718-4ABD-98DE-E14DC74F4872),
dual,
helpstring("IChannelLineup Interface"),
pointer_default(unique)
]
interface IChannelLineup : IDispatch
{
[propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
[propput, id(didName), helpstring("property Name")] HRESULT Name([in] BSTR newVal);
[propget, id(didChannels), helpstring("property Channels")] HRESULT Channels([out, retval] IChannels * *pVal);
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
};
[
uuid(73AF9077-4F6D-4FCB-A9E2-FDFBB9AE5310),
helpstring("Channels Class")
]
coclass Channels
{
[default] interface IChannels;
[default, source] dispinterface IChannelsEvents;
};
[
object,
uuid(2F78C3E1-98FE-4526-A0A7-A621025AEFF6),
dual,
helpstring("IChannelLineups Interface"),
pointer_default(unique)
]
interface IChannelLineups : IDispatch
{
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IChannelLineup **ppchanlineup);
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew(BSTR bstrName, [out, retval] IChannelLineup * *pVal);
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
[id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IChannelLineups **ppchanlineups);
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IChannelLineups * *ppchanlineups);
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IChannelLineup * *ppchanlineup);
[id(didResync), helpstring("method Resync")] HRESULT Resync();
};
[
uuid(8F86A876-E12A-4159-9647-EAFE0288014F),
helpstring("ChannelLineup Class")
]
coclass ChannelLineup
{
[default] interface IChannelLineup;
};
[
uuid(1E3971E3-CCDC-445D-AE97-A15D5D4A40C9),
helpstring("IChannelLineupsEvents Interface")
]
dispinterface IChannelLineupsEvents
{
properties:
methods:
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IChannelLineup *pchanlineup);
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IChannelLineup *pchanlineup);
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
};
[
object,
uuid(E8F1FBD5-4E44-4C26-B3D2-2C1C6999D611),
dual,
helpstring("IObjects Interface"),
pointer_default(unique)
]
interface IObjects : IUnknown
{
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IUnknown * *ppunk);
[propget, id(didItemsWithType), helpstring("property ItemsWithType")] HRESULT ItemsWithType(BSTR bstrCLSID, [out, retval] IObjects * *pVal);
[propget, id(didItemWithIID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IUnknown * *ppunk);
[propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IObjects * *pVal);
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *ppropcond, [out, retval] IObjects * *pVal);
[id(didAddAt), helpstring("method AddAt")] HRESULT AddAt(IUnknown *punk, long index);
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew([out, retval] IUnknown * *ppunk);
[id(didRemove), helpstring("method Remove")] HRESULT Remove(VARIANT varIndex);
[id(didRemoveAll), helpstring("method RemoveAll")] HRESULT RemoveAll();
[propget, id(didAddNewAt), helpstring("property AddNewAt")] HRESULT AddNewAt([in] long index, [out, retval] IUnknown * *ppunk);
[propget, id(didItemsInTimeRange), helpstring("property ItemsInTimeRange")] HRESULT ItemsInTimeRange(DATE dtStart, DATE dtEnd, [out, retval] IObjects * *pVal);
[propget, id(didItemsRelToBy), helpstring("property ItemsRelatedToBy")] HRESULT ItemsRelatedToBy([in] IUnknown *pobj, [in] IMetaPropertyType *pproptype, [out, retval] IObjects * *ppobjs);
[propget, id(didItemsInvRelToBy), helpstring("property ItemsInverseRelatedToBy")] HRESULT ItemsInverseRelatedToBy([in] IUnknown *pobj, [in] IMetaPropertyType *pproptype, [out, retval] IObjects * *ppobjs);
[id(didUnreferencedItems), helpstring("method UnreferencedItems")] HRESULT UnreferencedItems([out, retval] IObjects **ppobjs);
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IObjects * *pVal);
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IUnknown * *ppunk);
[id(didResync), helpstring("method Resync")] HRESULT Resync();
};
[
uuid(8520EF80-1C19-4CB0-83FA-67DB59CC9AE4),
helpstring("ChannelLineups Class")
]
coclass ChannelLineups
{
[default] interface IChannelLineups;
[default, source] dispinterface IChannelLineupsEvents;
};
[
uuid(83375A19-A098-42CF-9206-EE36FE48C637),
helpstring("IObjectsNotifications Interface")
]
interface IObjectsNotifications : IUnknown
{
[id(didItemAdded), helpstring("method Notify_ItemAdded")] HRESULT Notify_ItemAdded(IUnknown *punk);
[id(didItemRemoved), helpstring("method Notify_ItemRemoved")] HRESULT Notify_ItemRemoved([in] long idObj);
[id(didItemChanged), helpstring("method Notify_ItemChanged")] HRESULT Notify_ItemChanged(IUnknown *punk);
[id(didItemsChanged), helpstring("method Notify_ItemsChanged")] HRESULT Notify_ItemsChanged();
};
[
uuid(B485447D-B180-420F-B2A5-E7BBCEA07EAD),
aggregatable,
helpstring("Objects Class")
]
coclass Objects
{
[default] interface IObjects;
};
[
object,
uuid(4B16049B-E548-4868-B303-D501340E2CB1),
dual,
helpstring("IGuideDataProvider Interface"),
pointer_default(unique)
]
interface IGuideDataProvider : IDispatch
{
[propget, id(didID), helpstring("property ID")] HRESULT ID([out, retval] long *pVal);
[propget, id(didName), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pbstrName);
[propget, id(didDescription), helpstring("property Description")] HRESULT Description([out, retval] BSTR *pbstrDesc);
[propput, id(didDescription), helpstring("property Description")] HRESULT Description([in] BSTR bstrDesc);
[propget, id(didMetaProperties), helpstring("property MetaProperties")] HRESULT MetaProperties([out, retval] IMetaProperties * *pVal);
};
[
object,
uuid(CA9DE996-637C-47BF-BC10-CF956BE298EC),
dual,
helpstring("IGuideDataProviders Interface"),
pointer_default(unique)
]
interface IGuideDataProviders : IDispatch
{
[propget, id(didCount), helpstring("property Count")] HRESULT Count([out, retval] long *plCount);
[propget, id(didItem), helpstring("property Item")] HRESULT Item(VARIANT varIndex, [out, retval] IGuideDataProvider * *ppdataprovider);
[propget, id(didItemWithID), helpstring("property ItemWithID")] HRESULT ItemWithID(long id, [out, retval] IGuideDataProvider * *ppdataprovider);
[propget, id(didItemWithName), helpstring("property ItemWithName")] HRESULT ItemWithName(BSTR bstrName, [out, retval] IGuideDataProvider **ppdataprovider);
[propget, id(didItemsWithMetaProp), helpstring("property ItemsWithMetaProperty")] HRESULT ItemsWithMetaProperty(IMetaProperty *pprop, [out, retval] IGuideDataProviders * *ppdataproviders);
[propget, id(didItemsWithCond), helpstring("property ItemsWithMetaPropertyCond")] HRESULT ItemsWithMetaPropertyCond(IMetaPropertyCondition *pcond, [out, retval] IGuideDataProviders * *ppdataproviders);
[propget, id(didAddNew), helpstring("property AddNew")] HRESULT AddNew([in] BSTR bstrName, [out, retval] IGuideDataProvider * *ppdataprovider);
[propget, id(didItemsByKey), helpstring("property ItemsByKey")] HRESULT ItemsByKey([in] IMetaPropertyType *pproptype, [in] IGuideDataProvider *pprovider, [in] long idLang, [in] long vt, [out, retval] IGuideDataProviders * *ppproviders);
[propget, id(didItemWithKey), helpstring("property ItemWithKey")] HRESULT ItemWithKey(VARIANT varIndex, [out, retval] IGuideDataProvider * *ppprovider);
[id(didResync), helpstring("method Resync")] HRESULT Resync();
};
[
uuid(3CFC7A68-76E9-4F1D-8ECE-08C44F4FFC3E),
helpstring("GuideDataProvider Class")
]
coclass GuideDataProvider
{
[default] interface IGuideDataProvider;
};
[
uuid(850A646E-140B-43B0-A243-20CC6B9FA8BC),
helpstring("IGuideDataProvidersEvents Interface")
]
dispinterface IGuideDataProvidersEvents
{
properties:
methods:
[id(didItemAdded), helpstring("method ItemAdded")] HRESULT ItemAdded(IChannelLineup *pchanlineup);
[id(didItemRemoved), helpstring("method ItemRemoved")] HRESULT ItemRemoved([in] long idObj);
[id(didItemChanged), helpstring("method ItemChanged")] HRESULT ItemChanged(IChannelLineup *pchanlineup);
[id(didItemsChanged), helpstring("method ItemsChanged")] HRESULT ItemsChanged();
};
[
uuid(6E30077E-2E0B-4D4A-92B0-CDB5E5116E3B),
helpstring("GuideDataProviders Class")
]
coclass GuideDataProviders
{
[default] interface IGuideDataProviders;
[default, source] dispinterface IGuideDataProvidersEvents;
};
};

View File

@ -1,587 +0,0 @@
//------------------------------------------------------------------------------
// File: MSVidCtl.idl
//
// Desc: IDL source for MSVidCtl.dll.
//
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// This file will be processed by the MIDL tool to
// produce the type library (MSVidCtl.tlb) and marshalling code.
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2001.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("#pragma once")
#include <olectl.h>
#ifndef DO_NO_IMPORTS
#ifndef TUNING_MODEL_ONLY
import "mshtml.idl";
import "mstve.idl";
import "mstvca.idl";
import "segment.idl";
#endif
#endif
#ifndef TUNING_MODEL_ONLY
typedef enum {
dispidInputs,
dispidOutputs,
dispid_Inputs,
dispid_Outputs,
dispidVideoRenderers,
dispidAudioRenderers,
dispidFeatures,
dispidInput,
dispidOutput,
dispidVideoRenderer,
dispidAudioRenderer,
dispidSelectedFeatures,
dispidView, // total graph control
dispidBuild,
dispidPause,
dispidRun,
dispidStop,
dispidDecompose,
dispidDisplaySize,
dispidMaintainAspectRatio,
dispidColorKey,
dispidStateChange,
dispidgetState,
dispidunbind,
dispidbind,
dispidDisableVideo,
dispidDisableAudio,
dispidViewNext,
} MSViddispidList;
typedef enum {
dslDefaultSize,
dslSourceSize = 0, // synonym
dslHalfSourceSize,
dslDoubleSourceSize,
dslFullScreen,
dslHalfScreen,
dslQuarterScreen,
dslSixteenthScreen
} DisplaySizeList;
typedef enum {
STATE_UNBUILT =-1,
STATE_STOP,
STATE_PAUSE,
STATE_PLAY,
} MSVidCtlStateList;
//*****************************************************************************
///////////////////////////////////////////////////////////////////////////////
//
// the full Viewer control
//
///////////////////////////////////////////////////////////////////////////////
//*****************************************************************************
///////////////////////////////////////////////////////////////////////////////////////
[
object,
uuid(B0EDF162-910A-11D2-B632-00C04F79498E),
dual,
hidden,
nonextensible,
helpstring("MS Video Control Interface"),
pointer_default(unique)
]
interface IMSVidCtl : IDispatch
{
// stock props
[propget, id(DISPID_AUTOSIZE)]
HRESULT AutoSize([out,retval]VARIANT_BOOL* pbool);
[propput, id(DISPID_AUTOSIZE)]
HRESULT AutoSize([in]VARIANT_BOOL vbool);
[propget, id(DISPID_BACKCOLOR)]
HRESULT BackColor([out,retval]OLE_COLOR* backcolor);
[propput, id(DISPID_BACKCOLOR)]
HRESULT BackColor([in]OLE_COLOR backcolor);
[propget, id(DISPID_ENABLED)]
HRESULT Enabled([out,retval]VARIANT_BOOL* pbool);
[propput, id(DISPID_ENABLED)]
HRESULT Enabled([in]VARIANT_BOOL vbool);
[propget, id(DISPID_TABSTOP)]
HRESULT TabStop([out, retval]VARIANT_BOOL* pbool);
[propput, id(DISPID_TABSTOP)]
HRESULT TabStop([in]VARIANT_BOOL vbool);
[propget, id(DISPID_HWND)]
HRESULT Window([out, retval]HWND* phwnd);
[id(DISPID_REFRESH)]
HRESULT Refresh();
// pseudo video renderer properties/methods that require access to ole container
[propget, id(dispidDisplaySize)]
HRESULT DisplaySize([out,retval]DisplaySizeList *CurrentValue);
[propput, id(dispidDisplaySize)]
HRESULT DisplaySize([in]DisplaySizeList NewValue);
[propget, id(dispidMaintainAspectRatio)]
HRESULT MaintainAspectRatio([out,retval]VARIANT_BOOL *CurrentValue);
[propput, id(dispidMaintainAspectRatio)]
HRESULT MaintainAspectRatio([in]VARIANT_BOOL NewValue);
// non-stock visual propertiies that require coordination/implementation with
// core ctl drawing/painting function
[propget, id(dispidColorKey)]
HRESULT ColorKey([out,retval]OLE_COLOR *CurrentValue);
[propput, id(dispidColorKey)]
HRESULT ColorKey([in]OLE_COLOR NewValue);
// available collections
[propget, id(dispidInputs), helpstring("Available Input Devices")] HRESULT InputsAvailable([in] BSTR CategoryGuid, [out, retval] IMSVidInputDevices * *pVal);
[propget, id(dispidOutputs), helpstring("Available Output Devices")] HRESULT OutputsAvailable([in] BSTR CategoryGuid, [out, retval] IMSVidOutputDevices * *pVal);
[propget, id(dispid_Inputs), hidden, restricted, helpstring("Available Input Devices")] HRESULT _InputsAvailable([in] LPCGUID CategoryGuid, [out, retval] IMSVidInputDevices * *pVal);
[propget, id(dispid_Outputs), hidden, restricted, helpstring("Available Output Devices")] HRESULT _OutputsAvailable([in] LPCGUID CategoryGuid, [out, retval] IMSVidOutputDevices * *pVal);
[propget, id(dispidVideoRenderers), helpstring("Available Video Renderers")] HRESULT VideoRenderersAvailable([out, retval] IMSVidVideoRendererDevices * *pVal);
[propget, id(dispidAudioRenderers), helpstring("Available Audio Renderers")] HRESULT AudioRenderersAvailable([out, retval] IMSVidAudioRendererDevices * *pVal);
[propget, id(dispidFeatures), helpstring("Available Features")] HRESULT FeaturesAvailable([out, retval] IMSVidFeatures * *pVal);
// current selections
[propget, id(dispidInput), helpstring("Currently Selected Input Device")] HRESULT InputActive([out, retval] IMSVidInputDevice **pVal);
[propput, id(dispidInput), helpstring("Currently Selected Input Device")] HRESULT InputActive([in] IMSVidInputDevice *pVal);
[propget, id(dispidOutput), helpstring("Currently Selected Output Devices")] HRESULT OutputsActive([out, retval] IMSVidOutputDevices **pVal);
[propput, id(dispidOutput), helpstring("Currently Selected Output Devices")] HRESULT OutputsActive([in] IMSVidOutputDevices *pVal);
[propget, id(dispidVideoRenderer), helpstring("Currently Selected Video Renderer")] HRESULT VideoRendererActive([out, retval] IMSVidVideoRenderer **pVal);
[propput, id(dispidVideoRenderer), helpstring("Currently Selected Video Renderer")] HRESULT VideoRendererActive([in] IMSVidVideoRenderer *pVal);
[propget, id(dispidAudioRenderer), helpstring("Currently Selected Audio Renderer")] HRESULT AudioRendererActive([out, retval] IMSVidAudioRenderer **pVal);
[propput, id(dispidAudioRenderer), helpstring("Currently Selected Audio Renderer")] HRESULT AudioRendererActive([in] IMSVidAudioRenderer *pVal);
[propget, id(dispidSelectedFeatures), helpstring("Currently Selected Features")] HRESULT FeaturesActive([out, retval] IMSVidFeatures **pVal);
[propput, id(dispidSelectedFeatures), helpstring("Currently Selected Features")] HRESULT FeaturesActive([in] IMSVidFeatures *pVal);
[propget, id(dispidgetState), helpstring("Check the current MSVidCtl state.")] HRESULT State([out, retval]MSVidCtlStateList* lState);
// methods
[id(dispidView), helpstring("Find an input device for viewing the specified item. This may be a string(VT_BSTR) or an object(VT_UNKNOWN).")] HRESULT View([in] VARIANT* v);
[id(dispidBuild), helpstring("Compose the graph")] HRESULT Build();
[id(dispidPause), helpstring("Stop the graph")] HRESULT Pause();
[id(dispidRun), helpstring("Compose the graph if necessary and start it running")] HRESULT Run();
[id(dispidStop), helpstring("Stop the graph")] HRESULT Stop();
[id(dispidDecompose), helpstring("Disassemble the graph(Inverse of Build)")] HRESULT Decompose();
[id(dispidDisableVideo), helpstring("set active video renderer to nothing")] HRESULT DisableVideo();
[id(dispidDisableAudio), helpstring("set active Audio renderer to nothing")] HRESULT DisableAudio();
[id(dispidViewNext), helpstring("Find another input device for viewing the specified item. Works like View except skips current input")] HRESULT ViewNext([in] VARIANT* v);
};
///Added for the mseventbinder
[
object,
dual,
oleautomation,
hidden,
nonextensible,
pointer_default(unique),
uuid(C3A9F406-2222-436D-86D5-BA3229279EFB),
helpstring("IMSEventBinder Interface"),
]
interface IMSEventBinder : IDispatch {
[id(dispidbind), helpstring("method Bind")] HRESULT Bind([in]LPDISPATCH pEventObject, [in]BSTR EventName, [in]BSTR EventHandler, [out, retval] LONG * CancelID);
[id(dispidunbind), helpstring("method Unbind")] HRESULT Unbind([in]DWORD CancelCookie);
};
////
#endif // TUNING_MODEL_ONLY
//*****************************************************************************
//*****************************************************************************
//////////////////////////////////////////////////////////////////////////////////////
// Type Library for MS Video Control
//////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************
//*****************************************************************************
[
uuid(B0EDF154-910A-11D2-B632-00C04F79498E),
version(1.0),
helpstring("MS Video Control 1.0 Type Library")
]
library MSVidCtlLib
{
importlib("stdole2.tlb");
#ifndef TUNING_MODEL_ONLY
///////////////////////////////////////////////////////////////////////////////////////
// event interfaces
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(B0EDF164-910A-11D2-B632-00C04F79498E),
helpstring("MS Video Control Events Interface")
]
dispinterface _IMSVidCtlEvents
{
properties:
// Event interface has no properties
methods:
[id(DISPID_CLICK)] void Click();
[id(DISPID_DBLCLICK)] void DblClick();
[id(DISPID_KEYDOWN)] void KeyDown(short* KeyCode, short Shift);
[id(DISPID_KEYPRESS)] void KeyPress(short* KeyAscii);
[id(DISPID_KEYUP)] void KeyUp(short* KeyCode, short Shift);
[id(DISPID_MOUSEDOWN)] void MouseDown(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
[id(DISPID_MOUSEMOVE)] void MouseMove(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
[id(DISPID_MOUSEUP)] void MouseUp(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
[id(DISPID_ERROREVENT)] void Error(short Number, BSTR* Description, long Scode, BSTR Source, BSTR HelpFile, long HelpContext, boolean* CancelDisplay);
[id(dispidStateChange)] void StateChange(MSVidCtlStateList PrevState, MSVidCtlStateList CurrState);
};
//*****************************************************************************
///////////////////////////////////////////////////////////////////////////////////////
// device classes
///////////////////////////////////////////////////////////////////////////////////////
//*****************************************************************************
// inputs
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(1C15D484-911D-11d2-B632-00C04F79498E),
helpstring("MS Video Control Analog TV Tuner Device Class")
]
coclass MSVidAnalogTunerDevice
{
[default] interface IMSVidAnalogTuner;
[default, source] interface IMSVidAnalogTunerEvent;
interface IMSVidGraphSegment;
};
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(A2E3074E-6C3D-11d3-B653-00C04F79498E),
helpstring("MS Video Control BDA Tuner Device Class")
]
coclass MSVidBDATunerDevice
{
[default] interface IMSVidTuner;
[default, source] interface IMSVidTunerEvent;
interface IMSVidGraphSegment;
};
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(37B0353C-A4C8-11d2-B634-00C04F79498E),
helpstring("MS Video Control File Playback Device Class")
]
coclass MSVidFilePlaybackDevice
{
[default] interface IMSVidFilePlayback;
[default, source] interface IMSVidFilePlaybackEvent;
interface IMSVidGraphSegment;
};
[
uuid(011B3619-FE63-4814-8A84-15A194CE9CE3),
helpstring("MSVidWebDVD Class")
]
coclass MSVidWebDVD
{
[default] interface IMSVidWebDVD;
[default, source] interface IMSVidWebDVDEvent;
interface IMSVidGraphSegment;
};
[
uuid(FA7C375B-66A7-4280-879D-FD459C84BB02),
helpstring("MSVidWebDVDAdm Class")
]
coclass MSVidWebDVDAdm
{
[default] interface IMSVidWebDVDAdm;
};
// rendererers
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(37B03543-A4C8-11d2-B634-00C04F79498E),
helpstring("MS Video Control Video Renderer Class")
]
coclass MSVidVideoRenderer
{
[default] interface IMSVidVideoRenderer2;
interface IMSVidVideoRenderer;
[default, source] interface IMSVidVideoRendererEvent;
//[default, source] interface IMSVidVideoRendererEvent2;
interface IMSVidGraphSegment;
};
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(37B03544-A4C8-11d2-B634-00C04F79498E),
helpstring("MS Video Control Audio Renderer Class")
]
coclass MSVidAudioRenderer
{
[default] interface IMSVidAudioRenderer;
[default, source] interface IMSVidAudioRendererEvent;
interface IMSVidGraphSegment;
};
// features
[
uuid(334125C0-77E5-11d3-B653-00C04F79498E),
helpstring("MS Video Control Standard Data Services for Broadcast IP through NDIS stack")
]
coclass MSVidDataServices
{
interface IMSVidDataServices;
};
[
uuid(7F9CB14D-48E4-43b6-9346-1AEBC39C64D3),
helpstring("MS Video Control Standard Closed Captioning")
]
coclass MSVidClosedCaptioning
{
interface IMSVidClosedCaptioning;
};
[
uuid(1600F001-6666-4f66-B1E2-BF3C9FBB9BA6),
helpstring("MS Video Control TVE Feature Segment"),
]
coclass MSVidTVEGSeg
{
[default] interface IMSVidTVEGSeg;
interface ITVEFeature; // 'active' service, outgoing events
// interface IMSVidGraphSegment; // standard graph segment methods
};
[
uuid(1600F101-6666-4f66-B1E2-BF3C9FBB9BA6),
helpstring("MS Video Control CA Feature Segment"),
]
coclass MSVidCAGSeg
{
[default] interface IMSVidCAGSeg;
interface ICAManager; // aggregates with this..
// interface IMSVidGraphSegment; // standard graph segment methods
};
///////////////////////////////////////////////////////////////////////////////////////
// control classes
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(B0EDF163-910A-11D2-B632-00C04F79498E),
control,
helpstring("MS Video Control Class")
]
coclass MSVidCtl
{
[default] interface IMSVidCtl;
[default, source] dispinterface _IMSVidCtlEvents;
};
///////////////////////////////////////////////////////////////////////////////////////
// device collections
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(C5702CCC-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Input Device Collection Class")
]
coclass MSVidInputDevices
{
[default] interface IMSVidInputDevices;
};
[
uuid(C5702CCD-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Output Device Collection Class")
]
coclass MSVidOutputDevices
{
[default] interface IMSVidOutputDevices;
};
[
uuid(C5702CCE-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Video Renderer Device Collection Class")
]
coclass MSVidVideoRendererDevices
{
[default] interface IMSVidVideoRendererDevices;
};
[
uuid(C5702CCF-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Audio Renderer Device Collection Class")
]
coclass MSVidAudioRendererDevices
{
[default] interface IMSVidAudioRendererDevices;
};
[
uuid(C5702CD0-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Feature Collection Class")
]
coclass MSVidFeatures
{
[default] interface IMSVidFeatures;
};
///////////////////////////////////////////////////////////////////////////////////////
// composites
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(2764BCE5-CC39-11D2-B639-00C04F79498E),
helpstring("MS Video Control Generic Composition Class")
]
coclass MSVidGenericComposite
{
interface IMSVidCompositionSegment;
};
[
uuid(E18AF75A-08AF-11d3-B64A-00C04F79498E),
helpstring("MS Video Control Custom Composition for Analog Capture to Overlay Mixer")
]
coclass MSVidAnalogCaptureToOverlayMixer
{
interface IMSVidCompositionSegment;
};
[
uuid(C5702CD6-9B79-11d3-B654-00C04F79498E),
helpstring("MS Video Control Custom Composition for Analog Capture to Data Services")
]
coclass MSVidAnalogCaptureToDataServices
{
interface IMSVidCompositionSegment;
};
[
uuid(267db0b3-55e3-4902-949b-df8f5cec0191),
helpstring("MS Video Control Custom Composition for WebDVD to Overlay Mixer")
]
coclass MSVidWebDVDToVideoRenderer
{
interface IMSVidCompositionSegment;
};
[
uuid(6AD28EE1-5002-4e71-AAF7-BD077907B1A4),
helpstring("MS Video Control Custom Composition for Mpeg2 Decoder to Closed Captioning")
]
coclass MSVidMPEG2DecoderToClosedCaptioning
{
interface IMSVidCompositionSegment;
};
///////////////////////////////////////////////////////////////////////////////////////
// Miscellaneous
///////////////////////////////////////////////////////////////////////////////////////
[
uuid(11973C25-3529-40e4-9AB1-DDC164CBEF49),
helpstring("MS Video Control Rendering Behavior Factory")
]
coclass MSVidRenderFactory
{
interface IElementBehaviorFactory;
};
// Events
[
uuid(577FAA18-4518-445E-8F70-1473F8CF4BA4),
helpstring("MSEventBinder Class")
]
coclass MSEventBinder
{
[default] interface IMSEventBinder;
};
// vidrect class
[
hidden, restricted,
uuid(CB4276E6-7D5F-4cf1-9727-629C5E6DB6AE),
helpstring("Automation compliant scalable rectangle Class")
]
coclass MSVidRect
{
[default] interface IMSVidRect;
};
// NOTE: there is no object factory for the following classes.
// the implementation for the underlying code is a c++ abstract base class.
// this coclass is only provided here to force vb to expose the base interface
// to enable polymorphic access to derived objects
[
hidden, restricted,
uuid(6E40476F-9C49-4c3e-8BB9-8587958EFF74),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidDevice
{
[default] interface IMSVidDevice;
};
[
hidden, restricted,
uuid(AC1972F2-138A-4ca3-90DA-AE51112EDA28),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidInputDevice
{
[default] interface IMSVidInputDevice;
};
[
hidden, restricted,
uuid(95F4820B-BB3A-4e2d-BC64-5B817BC2C30E),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidVideoInputDevice
{
[default] interface IMSVidVideoInputDevice;
};
[
hidden, restricted,
uuid(1990D634-1A5E-4071-A34A-53AAFFCE9F36),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidVideoPlaybackDevice
{
[default] interface IMSVidPlayback;
};
[
hidden, restricted,
uuid(7748530B-C08A-47ea-B24C-BE8695FF405F),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidFeature
{
[default] interface IMSVidFeature;
};
[
hidden, restricted,
uuid(87EB890D-03AD-4e9d-9866-376E5EC572ED),
helpstring("dummy class to expose base interface to VB")
]
coclass MSVidOutput
{
[default] interface IMSVidOutputDevice;
};
#endif //TUNING_MODEL_ONLY
};
// end of file msvidctl.idl

File diff suppressed because it is too large Load Diff

View File

@ -1,172 +0,0 @@
//------------------------------------------------------------------------------
// File: VideoAcc.idl
//
// Desc: An interface exposed by the overlay mixer to help decode samples
// using hardware video acceleration.
//
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "unknwn.idl";
cpp_quote("//")
cpp_quote("// The following declarations within the 'if 0' block are dummy typedefs used to make")
cpp_quote("// the motncomp.idl file build. The actual definitions are contained in ddraw.h and amva.h")
cpp_quote("//")
cpp_quote("#if 0")
typedef void* LPVOID;
typedef void* LPGUID;
typedef void* LPDIRECTDRAWSURFACE;
typedef void* LPDDPIXELFORMAT;
typedef void* LPAMVAInternalMemInfo;
typedef void AMVAUncompDataInfo;
typedef void* LPAMVACompBufferInfo;
typedef void AMVABUFFERINFO;
typedef void AMVAEndFrameInfo;
typedef void* LPAMVAUncompBufferInfo;
typedef void AMVABeginFrameInfo;
typedef IUnknown* IMediaSample;
cpp_quote("#endif")
cpp_quote("#include <ddraw.h>")
cpp_quote("#include <amva.h>")
[
local,
object,
uuid(256A6A21-FBAD-11d1-82BF-00A0C9696C8F),
helpstring("IAMVideoAcceleratorNotify Interface"),
pointer_default(unique)
]
// IAMVideoAcceleratorNotify
interface IAMVideoAcceleratorNotify : IUnknown
{
// get information necessary to allocate uncompressed data buffers
// which is not part of the mediatype format (like how many buffers to allocate etc)
HRESULT GetUncompSurfacesInfo([in] const GUID *pGuid, [in] [out] LPAMVAUncompBufferInfo pUncompBufferInfo);
// set information regarding allocated uncompressed data buffers
HRESULT SetUncompSurfacesInfo([in] DWORD dwActualUncompSurfacesAllocated);
// get information necessary to create video accelerator object. It is the caller's responsibility
// to call CoTaskMemFree() on *ppMiscData
HRESULT GetCreateVideoAcceleratorData([in] const GUID *pGuid, [out] LPDWORD pdwSizeMiscData, [out] LPVOID *ppMiscData);
};
[
local,
object,
uuid(256A6A22-FBAD-11d1-82BF-00A0C9696C8F),
helpstring("IAMVideoAccelerator Interface"),
pointer_default(unique)
]
// IAMVideoAccelerator
interface IAMVideoAccelerator : IUnknown
{
// pdwNumGuidsSupported is an IN OUT paramter
// pGuidsSupported is an IN OUT paramter
// if pGuidsSupported is NULL, pdwNumGuidsSupported should return back with the
// number of uncompressed pixel formats supported
// Otherwise pGuidsSupported is an array of *pdwNumGuidsSupported structures
HRESULT GetVideoAcceleratorGUIDs([in] [out] LPDWORD pdwNumGuidsSupported, [in] [out] LPGUID pGuidsSupported);
// pGuid is an IN parameter
// pdwNumFormatsSupported is an IN OUT paramter
// pFormatsSupported is an IN OUT paramter (caller should make sure to set the size of EACH struct)
// if pFormatsSupported is NULL, pdwNumFormatsSupported should return back with
// the number of uncompressed pixel formats supported
// Otherwise pFormatsSupported is an array of *pdwNumFormatsSupported structures
HRESULT GetUncompFormatsSupported( [in] const GUID *pGuid, [in] [out] LPDWORD pdwNumFormatsSupported,
[in] [out] LPDDPIXELFORMAT pFormatsSupported);
// pGuid is an IN parameter
// pamvaUncompDataInfo is an IN parameter
// pamvaInternalMemInfo is an IN OUT parameter (caller should make sure to set the size of struct)
// currently only gets info about how much scratch memory will the hal allocate for its private use
HRESULT GetInternalMemInfo([in] const GUID *pGuid, [in] const AMVAUncompDataInfo *pamvaUncompDataInfo,
[in] [out] LPAMVAInternalMemInfo pamvaInternalMemInfo);
// pGuid is an IN parameter
// pamvaUncompDataInfo is an IN parameter
// pdwNumTypesCompBuffers is an IN OUT paramter
// pamvaCompBufferInfo is an IN OUT paramter (caller should make sure to set the size of EACH struct)
// if pamvaCompBufferInfo is NULL, pdwNumTypesCompBuffers should return back with the number of types of
// compressed buffers
// Otherwise pamvaCompBufferInfo is an array of *pdwNumTypesCompBuffers structures
HRESULT GetCompBufferInfo([in] const GUID *pGuid, [in] const AMVAUncompDataInfo *pamvaUncompDataInfo,
[in] [out] LPDWORD pdwNumTypesCompBuffers, [out] LPAMVACompBufferInfo pamvaCompBufferInfo);
// pdwNumTypesCompBuffers is an IN OUT paramter
// pamvaCompBufferInfo is an IN OUT paramter (caller should make sure to set the size of EACH struct)
// if pamvaCompBufferInfo is NULL, pdwNumTypesCompBuffers should return back with the number of types of
// compressed buffers
// Otherwise pamvaCompBufferInfo is an array of *pdwNumTypesCompBuffers structures
// only valid to call this after the pins are connected
HRESULT GetInternalCompBufferInfo([in] [out] LPDWORD pdwNumTypesCompBuffers, [out] LPAMVACompBufferInfo pamvaCompBufferInfo);
// begin a frame, the pMiscData is passed directly to the hal
// only valid to call this after the pins are connected
// Tells the ovmixer which frame is the destination
// frame. Use indices (valid vales are [0 .. pdwNumSurfacesAllocated-1]) to specify frames
HRESULT BeginFrame([in] const AMVABeginFrameInfo *amvaBeginFrameInfo);
// end a frame, the pMiscData is passed directly to the hal
// only valid to call this after the pins are connected
HRESULT EndFrame([in] const AMVAEndFrameInfo *pEndFrameInfo);
// lock and obtain access to a single buffer
// only valid to call this after the pins are connected
// Buffers are identified by type and index within that type
// Specifiying read-only will allow access to busy reference
// frames
// Output (uncompressed) frames use a type index of 0xFFFFFFFF
HRESULT GetBuffer(
[in] DWORD dwTypeIndex,
[in] DWORD dwBufferIndex,
[in] BOOL bReadOnly,
[out] LPVOID *ppBuffer,
[out] LONG *lpStride);
// unlock a single buffer
// Buffers are identified by type and index within that type
// only valid to call this after the pins are connected
HRESULT ReleaseBuffer([in] DWORD dwTypeIndex, [in] DWORD dwBufferIndex);
// Perform a decompression operation
// Private data can be passed to and from a driver
// identifiers for the corresponding members of pamvaMacroBlockInfo
// pamvaMacroBlockInfo is an IN parameter which is array (of length dwNumBlocks) of structures
// only valid to call this after the pins are connected
HRESULT Execute(
[in] DWORD dwFunction,
[in] LPVOID lpPrivateInputData,
[in] DWORD cbPrivateInputData,
[in] LPVOID lpPrivateOutputDat,
[in] DWORD cbPrivateOutputData,
[in] DWORD dwNumBuffers,
[in] const AMVABUFFERINFO *pamvaBufferInfo);
// query the decode status of a particular decompression operation
// dwTypeIndex and dwBufferIndex define the buffer whose status is
// being queried
HRESULT QueryRenderStatus([in] DWORD dwTypeIndex,
[in] DWORD dwBufferIndex,
[in] DWORD dwFlags);
// display a frame. The mediasample contains the timestamps etc for the frame to be displayed
// this call is a non-blocking call
// only valid to call this after the pins are connected
HRESULT DisplayFrame([in] DWORD dwFlipToIndex, [in] IMediaSample *pMediaSample);
};

View File

@ -1,875 +0,0 @@
//------------------------------------------------------------------------------
// File: Vmrender.idl
//
// Desc: Public Interfaces for the Video Mixing Renderer DShow filter
//
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
cpp_quote("#if 0")
// This is a temporary workaround to persuade MIDL to allow
// forward declarations
typedef DWORD* LPDIRECTDRAW7;
typedef DWORD* LPDIRECTDRAWSURFACE7;
typedef DWORD* LPDDPIXELFORMAT;
typedef DWORD* LPBITMAPINFOHEADER;
typedef struct {DWORD dw1; DWORD dw2;} DDCOLORKEY;
typedef DDCOLORKEY* LPDDCOLORKEY;
cpp_quote ("#endif")
cpp_quote("#include <ddraw.h>")
// public interfaces supported by the VMR
interface IVMRSurface;
interface IVMRSurfaceAllocator;
interface IVMRSurfaceAllocatorNotify;
interface IVMRImagePresenter;
interface IVMRImagePresenterConfig;
interface IVMRWindowlessControl;
interface IVMRMixerControl;
interface IVMRMixerBitmap;
interface IVMRFilterConfig;
interface IVMRMonitorConfig;
interface IVMRImageCompositor;
interface IVMRVideoStreamControl;
///////////////////////////////////////////////////////////////////////////////
//
// Allocator Presenter interfaces
//
///////////////////////////////////////////////////////////////////////////////
//=====================================================================
//
// IVMRImagePresenter
//
//=====================================================================
typedef enum {
VMRSample_SyncPoint = 0x00000001,
VMRSample_Preroll = 0x00000002,
VMRSample_Discontinuity = 0x00000004,
VMRSample_TimeValid = 0x00000008,
} VMRPresentationFlags;
typedef struct tagVMRPRESENTATIONINFO {
DWORD dwFlags;
LPDIRECTDRAWSURFACE7 lpSurf;
REFERENCE_TIME rtStart;
REFERENCE_TIME rtEnd;
SIZE szAspectRatio;
RECT rcSrc;
RECT rcDst;
DWORD dwTypeSpecificFlags;
DWORD dwInterlaceFlags;
} VMRPRESENTATIONINFO;
[
local,
object,
local,
uuid(CE704FE7-E71E-41fb-BAA2-C4403E1182F5),
helpstring("IVMRImagePresenter Interface"),
pointer_default(unique)
]
interface IVMRImagePresenter : IUnknown
{
HRESULT StartPresenting(
[in] DWORD_PTR dwUserID
);
HRESULT StopPresenting(
[in] DWORD_PTR dwUserID
);
HRESULT PresentImage(
[in] DWORD_PTR dwUserID,
[in] VMRPRESENTATIONINFO* lpPresInfo
);
};
//=====================================================================
//
// IVMRSurfaceAllocator
//
//=====================================================================
typedef enum {
AMAP_PIXELFORMAT_VALID = 0x01,
AMAP_3D_TARGET = 0x02,
AMAP_ALLOW_SYSMEM = 0x04,
AMAP_FORCE_SYSMEM = 0x08,
AMAP_DIRECTED_FLIP = 0x10,
AMAP_DXVA_TARGET = 0x20
} VMRSurfaceAllocationFlags;
typedef struct tagVMRALLOCATIONINFO {
DWORD dwFlags;
LPBITMAPINFOHEADER lpHdr;
LPDDPIXELFORMAT lpPixFmt;
SIZE szAspectRatio;
DWORD dwMinBuffers;
DWORD dwMaxBuffers;
DWORD dwInterlaceFlags;
SIZE szNativeSize;
} VMRALLOCATIONINFO;
[
local,
object,
local,
uuid(31ce832e-4484-458b-8cca-f4d7e3db0b52),
helpstring("IVMRSurfaceAllocator Interface"),
pointer_default(unique)
]
interface IVMRSurfaceAllocator : IUnknown
{
HRESULT AllocateSurface(
[in] DWORD_PTR dwUserID,
[in] VMRALLOCATIONINFO* lpAllocInfo,
[in] [out] DWORD* lpdwActualBuffers,
[out] LPDIRECTDRAWSURFACE7 *lplpSurface
);
HRESULT FreeSurface(
[in] DWORD_PTR dwID
);
HRESULT PrepareSurface(
[in] DWORD_PTR dwUserID,
[in] LPDIRECTDRAWSURFACE7 lpSurface,
[in] DWORD dwSurfaceFlags
);
HRESULT AdviseNotify(
[in] IVMRSurfaceAllocatorNotify* lpIVMRSurfAllocNotify
);
};
//=====================================================================
//
// IVMRSurfaceAllocatorNotify
//
//=====================================================================
[
local,
object,
local,
uuid(aada05a8-5a4e-4729-af0b-cea27aed51e2),
helpstring("IVMRSurfaceAllocatorNotify Interface"),
pointer_default(unique)
]
interface IVMRSurfaceAllocatorNotify : IUnknown
{
HRESULT AdviseSurfaceAllocator(
[in] DWORD_PTR dwUserID,
[in] IVMRSurfaceAllocator* lpIVRMSurfaceAllocator
);
HRESULT SetDDrawDevice(
[in] LPDIRECTDRAW7 lpDDrawDevice,
[in] HMONITOR hMonitor
);
HRESULT ChangeDDrawDevice(
[in] LPDIRECTDRAW7 lpDDrawDevice,
[in] HMONITOR hMonitor
);
HRESULT RestoreDDrawSurfaces();
HRESULT NotifyEvent(
[in] LONG EventCode,
[in] LONG_PTR Param1,
[in] LONG_PTR Param2
);
HRESULT SetBorderColor(
[in] COLORREF clrBorder
);
};
///////////////////////////////////////////////////////////////////////////////
//
// Application control and configuration interfaces
//
///////////////////////////////////////////////////////////////////////////////
//=====================================================================
//
// IVMRWindowlessControl
//
//=====================================================================
typedef enum {
VMR_ARMODE_NONE,
VMR_ARMODE_LETTER_BOX
} VMR_ASPECT_RATIO_MODE;
[
local,
object,
local,
uuid(0eb1088c-4dcd-46f0-878f-39dae86a51b7),
helpstring("IVMRWindowlessControl Interface"),
pointer_default(unique)
]
interface IVMRWindowlessControl : IUnknown
{
//
//////////////////////////////////////////////////////////
// Video size and position information
//////////////////////////////////////////////////////////
//
HRESULT GetNativeVideoSize(
[out] LONG* lpWidth,
[out] LONG* lpHeight,
[out] LONG* lpARWidth,
[out] LONG* lpARHeight
);
HRESULT GetMinIdealVideoSize(
[out] LONG* lpWidth,
[out] LONG* lpHeight
);
HRESULT GetMaxIdealVideoSize(
[out] LONG* lpWidth,
[out] LONG* lpHeight
);
HRESULT SetVideoPosition(
[in] const LPRECT lpSRCRect,
[in] const LPRECT lpDSTRect
);
HRESULT GetVideoPosition(
[out] LPRECT lpSRCRect,
[out] LPRECT lpDSTRect
);
HRESULT GetAspectRatioMode(
[out] DWORD* lpAspectRatioMode
);
HRESULT SetAspectRatioMode(
[in] DWORD AspectRatioMode
);
//
//////////////////////////////////////////////////////////
// Display and clipping management
//////////////////////////////////////////////////////////
//
HRESULT SetVideoClippingWindow(
[in] HWND hwnd
);
HRESULT RepaintVideo(
[in] HWND hwnd,
[in] HDC hdc
);
HRESULT DisplayModeChanged();
//
//////////////////////////////////////////////////////////
// GetCurrentImage
//
// Returns the current image being displayed. This images
// is returned in the form of packed Windows DIB.
//
// GetCurrentImage can be called at any time, also
// the caller is responsible for free the returned memory
// by calling CoTaskMemFree.
//
// Excessive use of this function will degrade video
// playback performed.
//////////////////////////////////////////////////////////
//
HRESULT GetCurrentImage(
[out] BYTE** lpDib
);
//
//////////////////////////////////////////////////////////
// Border Color control
//
// The border color is color used to fill any area of the
// the destination rectangle that does not contain video.
// It is typically used in two instances. When the video
// straddles two monitors and when the VMR is trying
// to maintain the aspect ratio of the movies by letter
// boxing the video to fit within the specified destination
// rectangle. See SetAspectRatioMode above.
//////////////////////////////////////////////////////////
//
HRESULT SetBorderColor(
[in] COLORREF Clr
);
HRESULT GetBorderColor(
[out] COLORREF* lpClr
);
//
//////////////////////////////////////////////////////////
// Color key control only meaningful when the VMR is using
// and overlay
//////////////////////////////////////////////////////////
//
HRESULT SetColorKey(
[in] COLORREF Clr
);
HRESULT GetColorKey(
[out] COLORREF* lpClr
);
};
//=====================================================================
//
// IVMRMixerControl
//
//=====================================================================
typedef enum {
MixerPref_NoDecimation = 0x00000001, // No decimation - full size
MixerPref_DecimateOutput = 0x00000002, // decimate output by 2 in x & y
MixerPref_DecimateMask = 0x0000000F,
MixerPref_BiLinearFiltering = 0x00000010, // use bi-linear filtering
MixerPref_PointFiltering = 0x00000020, // use point filtering
MixerPref_FilteringMask = 0x000000F0, // OR of all above flags
MixerPref_RenderTargetRGB = 0x00000100,
MixerPref_RenderTargetYUV420 = 0x00000200,
MixerPref_RenderTargetYUV422 = 0x00000400,
MixerPref_RenderTargetYUV444 = 0x00000800, // AYUV render target.
MixerPref_RenderTargetReserved = 0x0000F000, // 4 bits reserved for future use.
MixerPref_RenderTargetMask = 0x0000FF00, // OR of all above flags
} VMRMixerPrefs;
//
// Normalized relative rectangle
// Coordinate ranges: x=[0...1) y=[0...1)
// Where the output window goes from 0,0 (closed inclusive lower bound)
// to 1,1 (open exclusive upper bound)
//
typedef struct _NORMALIZEDRECT
{
float left;
float top;
float right;
float bottom;
} NORMALIZEDRECT, *PNORMALIZEDRECT;
[
local,
object,
local,
uuid(1c1a17b0-bed0-415d-974b-dc6696131599),
helpstring("IVMRMixerControl Interface"),
pointer_default(unique)
]
interface IVMRMixerControl : IUnknown
{
HRESULT SetAlpha(
[in] DWORD dwStreamID,
[in] float Alpha // Source alpha premultication factor (global alpha for source)
);
HRESULT GetAlpha(
[in] DWORD dwStreamID,
[out] float* pAlpha
);
HRESULT SetZOrder(
[in] DWORD dwStreamID,
[in] DWORD dwZ
);
HRESULT GetZOrder(
[in] DWORD dwStreamID,
[out] DWORD* pZ
);
HRESULT SetOutputRect(
[in] DWORD dwStreamID,
[in] const NORMALIZEDRECT *pRect
);
HRESULT GetOutputRect(
[in] DWORD dwStreamID,
[out] NORMALIZEDRECT *pRect
);
HRESULT SetBackgroundClr(
[in] COLORREF ClrBkg
);
HRESULT GetBackgroundClr(
[in] COLORREF* lpClrBkg
);
HRESULT SetMixingPrefs(
[in] DWORD dwMixerPrefs // a combination of VMRMixingPrefFlags
);
HRESULT GetMixingPrefs(
[out] DWORD* pdwMixerPrefs
);
};
///////////////////////////////////////////////////////////////////////////////
//
// VMR Multimon configuration interface
//
///////////////////////////////////////////////////////////////////////////////
typedef struct tagVMRGUID {
GUID* pGUID; // is NULL if the default DDraw device
GUID GUID; // otherwise points to this GUID
} VMRGUID;
#define VMRDEVICENAMELEN 32
#define VMRDEVICEDESCRIPTIONLEN 256
typedef struct tagVMRMONITORINFO {
VMRGUID guid;
RECT rcMonitor;
HMONITOR hMon;
DWORD dwFlags; // described in MONITORINFOEX, currently only MONITORINFOF_PRIMARY
wchar_t szDevice[VMRDEVICENAMELEN];
wchar_t szDescription[VMRDEVICEDESCRIPTIONLEN];
LARGE_INTEGER liDriverVersion;
DWORD dwVendorId;
DWORD dwDeviceId;
DWORD dwSubSysId;
DWORD dwRevision;
// find out the DDCAPS using DDrawCreate on the monitor GUID
} VMRMONITORINFO;
[
object,
local,
uuid(9cf0b1b6-fbaa-4b7f-88cf-cf1f130a0dce),
helpstring("IVMRMonitorConfig Interface"),
pointer_default(unique)
]
interface IVMRMonitorConfig : IUnknown
{
// Use this method on a Multi-Monitor system to specify to the
// mixer filter which Direct Draw driver should be used when connecting
// to an upstream decoder filter.
//
HRESULT SetMonitor(
[in] const VMRGUID *pGUID
);
// Use this method to determine the direct draw object that will be used when
// connecting the mixer filter to an upstream decoder filter.
//
HRESULT GetMonitor(
[out] VMRGUID *pGUID
);
// Use this method on a multi-monitor system to specify to the
// mixer filter the default Direct Draw device to use when
// connecting to an upstream filter. The default direct draw device
// can be overriden for a particular connection by SetMonitor method
// described above.
//
HRESULT SetDefaultMonitor(
[in] const VMRGUID *pGUID
);
// Use this method on a multi-monitor system to determine which
// is the default direct draw device the overlay mixer filter
// will use when connecting to an upstream filter.
//
HRESULT GetDefaultMonitor(
[out] VMRGUID *pGUID
);
// Use this method to get a list of Direct Draw device GUIDs and thier
// associated monitor information that the mixer can use when
// connecting to an upstream decoder filter. Passing down a NULL pInfo
// parameter allows the app to determine the required array size (returned
// in pdwNumDevices). Otherwise, dwNumDevices returns the actual
// number of devices retrieved.
//
HRESULT GetAvailableMonitors(
[out, size_is(dwMaxInfoArraySize)] VMRMONITORINFO* pInfo,
[in] DWORD dwMaxInfoArraySize, // in array members
[out] DWORD* pdwNumDevices // actual number of devices retrieved
);
};
///////////////////////////////////////////////////////////////////////////////
//
// VMR Filter configuration interfaces
//
///////////////////////////////////////////////////////////////////////////////
typedef enum {
RenderPrefs_ForceOffscreen = 0x00000001,
RenderPrefs_ForceOverlays = 0x00000002, // fail if no overlays
RenderPrefs_AllowOverlays = 0x00000000, // overlay used by default
RenderPrefs_AllowOffscreen = 0x00000000, // offscreen used if no overlay
RenderPrefs_DoNotRenderColorKeyAndBorder = 0x00000008, // app paints color keys
RenderPrefs_RestrictToInitialMonitor = 0x00000010, // output only to initial monitor
RenderPrefs_PreferAGPMemWhenMixing = 0x00000020, // try agp mem when allocating textures
RenderPrefs_Mask = 0x0000003f, // OR of all above flags
} VMRRenderPrefs;
typedef enum {
VMRMode_Windowed = 0x00000001,
VMRMode_Windowless = 0x00000002,
VMRMode_Renderless = 0x00000004,
// not a valid value to pass to SetRenderMode
VMRMode_Mask = 0x00000007, // OR of all above flags
} VMRMode;
enum {
MAX_NUMBER_OF_STREAMS = 16
};
[
object,
local,
uuid(9e5530c5-7034-48b4-bb46-0b8a6efc8e36),
helpstring("IVMRFilterConfig Interface"),
pointer_default(unique)
]
interface IVMRFilterConfig : IUnknown
{
HRESULT SetImageCompositor(
[in] IVMRImageCompositor* lpVMRImgCompositor
);
HRESULT SetNumberOfStreams(
[in] DWORD dwMaxStreams
);
HRESULT GetNumberOfStreams(
[out] DWORD* pdwMaxStreams
);
HRESULT SetRenderingPrefs(
[in] DWORD dwRenderFlags // a combination of VMRRenderingPrefFlags
);
HRESULT GetRenderingPrefs(
[out] DWORD* pdwRenderFlags
);
HRESULT SetRenderingMode(
[in] DWORD Mode // a combination of VMRMode
);
HRESULT GetRenderingMode(
[out] DWORD* pMode
);
}
//=====================================================================
//
// IVMRMixerBitmap
//
//=====================================================================
typedef struct _VMRALPHABITMAP
{
DWORD dwFlags; // flags word
HDC hdc; // DC for the bitmap to copy
LPDIRECTDRAWSURFACE7 pDDS; // DirectDraw surface to copy
RECT rSrc; // rectangle to copy from the DC/DDS
NORMALIZEDRECT rDest; // output rectangle in composition space
FLOAT fAlpha; // opacity of the bitmap
COLORREF clrSrcKey; // src color key
} VMRALPHABITMAP, *PVMRALPHABITMAP;
// Disable the alpha bitmap for now
cpp_quote("#define VMRBITMAP_DISABLE 0x00000001")
// Take the bitmap from the HDC rather than the DirectDraw surface
cpp_quote("#define VMRBITMAP_HDC 0x00000002")
// Take the entire DDraw surface - rSrc is ignored
cpp_quote("#define VMRBITMAP_ENTIREDDS 0x00000004")
// Indicates that the clrTrans value is valid and should be
// used when blending
cpp_quote("#define VMRBITMAP_SRCCOLORKEY 0x00000008")
// Indicates that the rSrc rectangle is valid and specifies a
// sub-rectangle of the of original app image to be blended.
// Use of this parameter enables "Image Strips"
cpp_quote("#define VMRBITMAP_SRCRECT 0x00000010")
[
object,
local,
uuid(1E673275-0257-40aa-AF20-7C608D4A0428),
helpstring("IVMRMixerBitmap Interface"),
pointer_default(unique)
]
interface IVMRMixerBitmap : IUnknown
{
// Set bitmap, location to blend it, and blending value
HRESULT SetAlphaBitmap(
[in] const VMRALPHABITMAP *pBmpParms
);
// Change bitmap location, size and blending value,
// graph must be running for change to take effect.
HRESULT UpdateAlphaBitmapParameters(
[in] PVMRALPHABITMAP pBmpParms
);
// Get bitmap, location to blend it, and blending value
HRESULT GetAlphaBitmapParameters(
[out] PVMRALPHABITMAP pBmpParms
);
};
//=====================================================================
//
// IVMRImageCompositor
//
//=====================================================================
typedef struct _VMRVIDEOSTREAMINFO {
LPDIRECTDRAWSURFACE7 pddsVideoSurface;
DWORD dwWidth, dwHeight;
DWORD dwStrmID;
FLOAT fAlpha;
DDCOLORKEY ddClrKey;
NORMALIZEDRECT rNormal;
} VMRVIDEOSTREAMINFO;
[
local,
object,
local,
uuid(7a4fb5af-479f-4074-bb40-ce6722e43c82),
helpstring("IVMRImageCompositor Interface"),
pointer_default(unique)
]
interface IVMRImageCompositor : IUnknown
{
HRESULT InitCompositionTarget(
[in] IUnknown* pD3DDevice,
[in] LPDIRECTDRAWSURFACE7 pddsRenderTarget
);
HRESULT TermCompositionTarget(
[in] IUnknown* pD3DDevice,
[in] LPDIRECTDRAWSURFACE7 pddsRenderTarget
);
HRESULT SetStreamMediaType(
[in] DWORD dwStrmID,
[in] AM_MEDIA_TYPE* pmt,
[in] BOOL fTexture
);
HRESULT CompositeImage(
[in] IUnknown* pD3DDevice,
[in] LPDIRECTDRAWSURFACE7 pddsRenderTarget,
[in] AM_MEDIA_TYPE* pmtRenderTarget,
[in] REFERENCE_TIME rtStart,
[in] REFERENCE_TIME rtEnd,
[in] DWORD dwClrBkGnd,
[in] VMRVIDEOSTREAMINFO* pVideoStreamInfo,
[in] UINT cStreams
);
};
//=====================================================================
//
// IVMRVideoStreamControl
//
//=====================================================================
[
object,
local,
uuid(058d1f11-2a54-4bef-bd54-df706626b727),
helpstring("IVMRMixerStreamConfig Interface"),
pointer_default(unique)
]
interface IVMRVideoStreamControl: IUnknown
{
HRESULT SetColorKey(
[in] LPDDCOLORKEY lpClrKey // Source color key, set to 0xFFFFFFFF to disable
);
HRESULT GetColorKey(
[out] LPDDCOLORKEY lpClrKey
);
HRESULT SetStreamActiveState(
[in] BOOL fActive
);
HRESULT GetStreamActiveState(
[out] BOOL* lpfActive
);
};
//=====================================================================
//
// IVMRSurface
//
//=====================================================================
[
local,
object,
local,
uuid(a9849bbe-9ec8-4263-b764-62730f0d15d0),
helpstring("IVMRSurface Interface"),
pointer_default(unique)
]
interface IVMRSurface : IUnknown
{
HRESULT IsSurfaceLocked();
HRESULT LockSurface(
[out] BYTE** lpSurface
);
HRESULT UnlockSurface();
HRESULT GetSurface(
[out] LPDIRECTDRAWSURFACE7 *lplpSurface
);
};
//=====================================================================
//
// IID_IVMRImagePresenterConfig - this interface allows applications
// to configure the default Microsoft provided allocator-presenter
// inorder to simplify the implementation of their own
// allocator-presenter plug-in.
//
//=====================================================================
[
local,
object,
local,
uuid(9f3a1c85-8555-49ba-935f-be5b5b29d178),
helpstring("IVMRImagePresenterConfig Interface"),
pointer_default(unique)
]
interface IVMRImagePresenterConfig : IUnknown
{
HRESULT SetRenderingPrefs(
[in] DWORD dwRenderFlags // see VMRRenderPrefs for valid flags
);
HRESULT GetRenderingPrefs(
[out] DWORD* dwRenderFlags // see VMRRenderPrefs for valid flags
);
}
//=====================================================================
//
// IID_IVMRImagePresenterExclModeConfig - this interface allows applications
// to configure the DDraw exclusive mode allocator-presenter. This
// interface extends the IVMRImagePresenterConfig interface defined
// above and is only implemented by the CLSID_AllocPresenterDDXclMode
// allocator-presenter object.
//
//=====================================================================
[
local,
object,
local,
uuid(e6f7ce40-4673-44f1-8f77-5499d68cb4ea),
helpstring("IVMRImagePresenterExclModeConfig Interface"),
pointer_default(unique)
]
interface IVMRImagePresenterExclModeConfig : IVMRImagePresenterConfig
{
HRESULT SetXlcModeDDObjAndPrimarySurface(
[in] LPDIRECTDRAW7 lpDDObj,
[in] LPDIRECTDRAWSURFACE7 lpPrimarySurf
);
HRESULT GetXlcModeDDObjAndPrimarySurface(
[out] LPDIRECTDRAW7* lpDDObj,
[out] LPDIRECTDRAWSURFACE7* lpPrimarySurf
);
}
//=====================================================================
//
// IVPManager
//
//=====================================================================
[
local,
object,
local,
uuid(aac18c18-e186-46d2-825d-a1f8dc8e395a),
helpstring("IVPManager Interface"),
pointer_default(unique)
]
interface IVPManager : IUnknown
{
// Use this method on a Multi-Monitor system to specify to the
// video port manager filter which videoport index is used
// to an upstream decoder filter.
//
HRESULT SetVideoPortIndex(
[in] DWORD dwVideoPortIndex // the video port number that this is connected to
);
// This method returns the current video port index being used by the VPM.
//
HRESULT GetVideoPortIndex(
[out] DWORD* pdwVideoPortIndex // the video port number that this is connected to
);
};

View File

@ -1,336 +0,0 @@
//------------------------------------------------------------------------------
// File: AMStream.idl
//
// Desc:
//
// Copyright (c) 1998-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "unknwn.idl";
import "mmstream.idl";
import "strmif.idl";
cpp_quote("#include <ddraw.h>")
cpp_quote("#include <mmsystem.h>")
cpp_quote("#include <mmstream.h>")
cpp_quote("#include <ddstream.h>")
cpp_quote("#include <austream.h>")
interface IAMMultiMediaStream;
interface IAMMediaStream;
interface IMediaStreamFilter;
interface IDirectDraw;
interface IDirectDrawSurface;
interface IAMMediaTypeStream;
interface IAMMediaTypeSample;
// Flags definitions for IAMMultiMediaStream::Initialize
enum {
AMMSF_NOGRAPHTHREAD = 0x00000001
};
// Flags definitions for AddMediaStream and IAMMediaStream::Initialize
enum {
// Don't add a stream - create a default renderer instead
// for the supplied purpose id
AMMSF_ADDDEFAULTRENDERER = 0x00000001,
AMMSF_CREATEPEER = 0x00000002,
// If no samples are created when we run or the last sample
// is deleted then terminate this stream
AMMSF_STOPIFNOSAMPLES = 0x00000004,
// If Update is not called keep going
AMMSF_NOSTALL = 0x00000008
};
// Flag definitions for OpenFile and OpenMoniker
enum {
AMMSF_RENDERTYPEMASK = 0x00000003,
AMMSF_RENDERTOEXISTING = 0x00000000,
AMMSF_RENDERALLSTREAMS = 0x00000001,
AMMSF_NORENDER = 0x00000002,
AMMSF_NOCLOCK = 0x00000004,
AMMSF_RUN = 0x00000008
};
typedef [v1_enum] enum {
Disabled = 0,
ReadData = 1,
RenderData = 2
} OUTPUT_STATE;
[
object,
uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D),
dual,
helpstring("IDirectShowStream Interface"),
pointer_default(unique)
]
interface IDirectShowStream : IDispatch
{
[propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal);
[propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal);
[propget, id(2), helpstring("property Video")] HRESULT Video([out, retval] OUTPUT_STATE *pVal);
[propput, id(2), helpstring("propetry Video")] HRESULT Video([in] OUTPUT_STATE newVal);
[propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal);
[propput, id(3), helpstring("propetry Audio")] HRESULT Audio([in] OUTPUT_STATE newVal);
};
// IAMMultiMediaStream interface
[
object,
uuid(BEBE595C-9A6F-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IAMMultiMediaStream : IMultiMediaStream
{
HRESULT Initialize(
[in] STREAM_TYPE StreamType,
[in] DWORD dwFlags,
[in] IGraphBuilder *pFilterGraph);
HRESULT GetFilterGraph(
[out] IGraphBuilder **ppGraphBuilder);
HRESULT GetFilter(
[out] IMediaStreamFilter **ppFilter);
HRESULT AddMediaStream(
[in] IUnknown *pStreamObject,
[in] const MSPID *PurposeId,
[in] DWORD dwFlags,
[out] IMediaStream **ppNewStream);
HRESULT OpenFile(
[in] LPCWSTR pszFileName,
[in] DWORD dwFlags);
HRESULT OpenMoniker(
[in] IBindCtx *pCtx,
[in] IMoniker *pMoniker,
[in] DWORD dwFlags);
HRESULT Render(
[in] DWORD dwFlags);
}
// IAMMediaStream interface
[
object,
uuid(BEBE595D-9A6F-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IAMMediaStream : IMediaStream
{
HRESULT Initialize(
[in] IUnknown *pSourceObject,
[in] DWORD dwFlags,
[in] REFMSPID PurposeId,
[in] const STREAM_TYPE StreamType);
HRESULT SetState(
[in] FILTER_STATE State);
HRESULT JoinAMMultiMediaStream(
[in] IAMMultiMediaStream *pAMMultiMediaStream);
HRESULT JoinFilter(
[in] IMediaStreamFilter *pMediaStreamFilter);
HRESULT JoinFilterGraph(
[in] IFilterGraph *pFilterGraph);
};
// IMediaStreamFilter interface
[
object,
local,
uuid(BEBE595E-9A6F-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IMediaStreamFilter : IBaseFilter
{
HRESULT AddMediaStream(
[in] IAMMediaStream *pAMMediaStream);
HRESULT GetMediaStream(
[in] REFMSPID idPurpose,
[out] IMediaStream **ppMediaStream);
HRESULT EnumMediaStreams(
[in] long Index,
[out] IMediaStream **ppMediaStream);
HRESULT SupportSeeking(
[in] BOOL bRenderer);
HRESULT ReferenceTimeToStreamTime(
[in] [out] REFERENCE_TIME *pTime);
HRESULT GetCurrentStreamTime(
[out] REFERENCE_TIME *pCurrentStreamTime);
HRESULT WaitUntil(
[in] REFERENCE_TIME WaitStreamTime);
HRESULT Flush(
[in] BOOL bCancelEOS);
HRESULT EndOfStream();
};
[
object,
local,
uuid(AB6B4AFC-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IDirectDrawMediaSampleAllocator : IUnknown
{
HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw);
};
[
object,
local,
uuid(AB6B4AFE-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IDirectDrawMediaSample : IUnknown
{
HRESULT GetSurfaceAndReleaseLock(
[out] IDirectDrawSurface **ppDirectDrawSurface,
[out] RECT * pRect);
HRESULT LockMediaSamplePointer(void);
};
[
object,
local,
uuid(AB6B4AFA-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IAMMediaTypeStream : IMediaStream
{
HRESULT GetFormat(
[out] AM_MEDIA_TYPE * pMediaType,
[in] DWORD dwFlags);
HRESULT SetFormat(
[in] AM_MEDIA_TYPE * pMediaType,
[in] DWORD dwFlags);
HRESULT CreateSample(
[in] long lSampleSize,
[in] BYTE * pbBuffer,
[in] DWORD dwFlags,
[in] IUnknown *pUnkOuter,
[out] IAMMediaTypeSample ** ppAMMediaTypeSample);
HRESULT GetStreamAllocatorRequirements(
[out] ALLOCATOR_PROPERTIES *pProps);
HRESULT SetStreamAllocatorRequirements(
[in] ALLOCATOR_PROPERTIES *pProps);
};
[
object,
local,
uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IAMMediaTypeSample : IStreamSample
{
//
// Unique methods for IAMMediaTypeSample
//
HRESULT SetPointer([in] BYTE *pBuffer, [in] long lSize);
//
// Mirror of IMediaSample
//
HRESULT GetPointer([out] BYTE ** ppBuffer);
long GetSize(void);
HRESULT GetTime([out] REFERENCE_TIME * pTimeStart, [out] REFERENCE_TIME * pTimeEnd);
HRESULT SetTime([in] REFERENCE_TIME * pTimeStart, [in] REFERENCE_TIME * pTimeEnd);
HRESULT IsSyncPoint(void);
HRESULT SetSyncPoint(BOOL bIsSyncPoint);
HRESULT IsPreroll(void);
HRESULT SetPreroll(BOOL bIsPreroll);
long GetActualDataLength(void);
HRESULT SetActualDataLength(long);
HRESULT GetMediaType(AM_MEDIA_TYPE **ppMediaType);
HRESULT SetMediaType(AM_MEDIA_TYPE *pMediaType);
HRESULT IsDiscontinuity(void);
HRESULT SetDiscontinuity(BOOL bDiscontinuity);
HRESULT GetMediaTime([out] LONGLONG * pTimeStart, [out] LONGLONG * pTimeEnd);
HRESULT SetMediaTime([in] LONGLONG * pTimeStart, [in] LONGLONG * pTimeEnd);
};
[
uuid(4E6CDE29-C0C4-11d0-8FF1-00C04FD9189D),
version(1.0),
helpstring("DirectShowStream 1.0 Type Library")
]
library DirectShowStreamLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(49c47ce5-9ba4-11d0-8212-00c04fc32c45),
helpstring("DirectShow Multi Media Stream")
]
coclass AMMultiMediaStream
{
[default] dispinterface IDirectShowStream;
};
};
//
// The MIDL compiler wants to produce a CLSID for everything defined in
// our type library, but it also wants to generate huge proxy code,
// so we use DEFINE_GUID for all other classes. It has another interesting
// bug in that it defines CLSID_AMMultiMediaStream within a #ifdef __cplusplus
// block, so we need to define it outside of that scope.
//
cpp_quote("#ifndef __cplusplus")
cpp_quote("EXTERN_C const CLSID CLSID_AMMultiMediaStream;")
cpp_quote("#endif")
cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, /* 49c47ce4-9ba4-11d0-8212-00c04fc32c45 */")
cpp_quote("0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, /* 8496e040-af4c-11d0-8212-00c04fc32c45 */")
cpp_quote("0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
cpp_quote("DEFINE_GUID(CLSID_AMAudioData, /* f2468580-af8a-11d0-8212-00c04fc32c45 */")
cpp_quote("0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, /* CF0F2F7C-F7BF-11d0-900D-00C04FD9189D */")
cpp_quote("0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0xd, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")

View File

@ -1,170 +0,0 @@
//------------------------------------------------------------------------------
// File: AMVPE.idl
//
// Desc:
//
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "unknwn.idl";
import "objidl.idl"; // for IPersist (IFilter's root)
/*
* VIDOESIGNALINFO
*/
typedef struct _VIDEOSIGNALINFO
{
DWORD dwSize; // Size of the structure
DWORD dwVREFHeight; // Specifies the number of lines of data in the vref
BOOL bDoubleClock; // videoport should enable double clocking
BOOL bVACT; // videoport should use an external VACT signal
BOOL bInterlaced; // Indicates that the signal is interlaced
BOOL bHalfline; // Device will write half lines into the frame buffer
BOOL bInvertedPolarity; // Devoce inverts the polarity by default
} AMVIDEOSIGNALINFO;
typedef struct AMVIDEOSIGNALINFO *LPAMVIDEOSIGNALINFO;
interface IVPEConfig;
interface IVPE;
/*
* DDVIDEOPORTCONNECT
*/
typedef struct _DDVIDEOPORTCONNECT
{
DWORD dwSize; // size of the DDVIDEOPORTCONNECT structure
GUID guidTypeID; // Description of video port connection
DWORD dwPortWidth; // Width of the video port
DWORD dwFlags; // Connection flags
} DDVIDEOPORTCONNECT;
typedef DDVIDEOPORTCONNECT *LPDDVIDEOPORTCONNECT;
/*
* DDPIXELFORMAT
*/
typedef struct _DDPIXELFORMAT
{
DWORD dwSize; // size of structure
DWORD dwFlags; // pixel format flags
DWORD dwFourCC; // (FOURCC code)
union
{
DWORD dwRGBBitCount; // how many bits per pixel (BD_1,2,4,8,16,24,32)
DWORD dwYUVBitCount; // how many bits per pixel (BD_4,8,16,24,32)
DWORD dwZBufferBitDepth; // how many bits for z buffers (BD_8,16,24,32)
DWORD dwAlphaBitDepth; // how many bits for alpha channels (BD_1,2,4,8)
};
union
{
DWORD dwRBitMask; // mask for red bit
DWORD dwYBitMask; // mask for Y bits
};
union
{
DWORD dwGBitMask; // mask for green bits
DWORD dwUBitMask; // mask for U bits
};
union
{
DWORD dwBBitMask; // mask for blue bits
DWORD dwVBitMask; // mask for V bits
};
union
{
DWORD dwRGBAlphaBitMask; // mask for alpha channel
DWORD dwYUVAlphaBitMask; // mask for alpha channel
DWORD dwRGBZBitMask; // mask for Z channel
DWORD dwYUVZBitMask; // mask for Z channel
};
} DDPIXELFORMAT;
typedef DDPIXELFORMAT * LPDDPIXELFORMAT;
[
object,
uuid(BC29A660-30E3-11d0-9E69-00C04FD7C15B),
pointer_default(unique)
]
interface IVPEConfig : IUnknown {
// gets the various connection information structures (guid, portwidth)
// in an array of structures. If the pointer to the array is NULL, first
// parameter returns the total number of formats supported.
HRESULT GetConnectInfo(
[in,out] LPDWORD lpNumConnectInfo,
[out] LPDDVIDEOPORTCONNECT lpddvpConnectInfo
);
HRESULT SetConnectInfo(
[in] DDVIDEOPORTCONNECT ddvpConnectInfo
);
// gets the various formats supported by the decoder in an array
// of structures. If the pointer to the array is NULL, first parameter
// returns the total number of formats supported.
HRESULT GetVideoFormats(
[in,out] LPDWORD lpNumFormats,
[out] LPDDPIXELFORMAT lpddpfFormats
);
// retrives maximum pixels per second rate expected for a given
// format and a given scaling factor. If decoder does not support
// those scaling factors, then it gives the rate and the nearest
// scaling factors.
HRESULT GetMaxPixelRate(
[in] DDPIXELFORMAT ddpfFormat,
[in,out] LPDWORD lpdwZoomHeight,
[in,out] LPDWORD lpdwZoomWidth,
[out] LPDWORD lpdwMaxPixelsPerSecond
);
// retrives various properties of the decoder for a given format
HRESULT GetVideoSignalInfo(
[in] DDPIXELFORMAT ddpfFormat,
[out] LPAMVIDEOSIGNALINFO lpAMVideoSignalInfo
);
// asks the decoder to ouput in this format. Return value should give
// appropriate error code
HRESULT SetVideoFormat(
[in] DDPIXELFORMAT ddpfFormat
);
// asks the decoder to treat even fields like odd fields and visa versa
HRESULT SetInvertPolarity(
);
// sets the scaling factors. If decoder does not support these,
// then it sets the values to the nearest factors it can support
HRESULT SetScalingFactors(
[in,out] LPDWORD lpdwZoomHeight,
[in,out] LPDWORD lpdwZoomWidth
);
}
[
object,
uuid(BC29A661-30E3-11d0-9E69-00C04FD7C15B),
pointer_default(unique)
]
interface IVPE : IUnknown {
HRESULT SetOverlaySurface(
[in] LPUNKNOWN lpOverlaySurface,
[in] INT iNumBackBuffers
);
}

View File

@ -1,106 +0,0 @@
//------------------------------------------------------------------------------
// File: AuStream.idl
//
// Desc: Used by MIDL tool to generate austream.h
//
// Copyright (c) 1998-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "unknwn.idl";
import "mmstream.idl";
cpp_quote("//")
cpp_quote("// The following declarations within the 'if 0' block are dummy typedefs used to make")
cpp_quote("// the ddstream.idl file build. The actual definitions are contained in DDRAW.H")
cpp_quote("//")
cpp_quote("#if 0")
typedef struct tWAVEFORMATEX WAVEFORMATEX;
cpp_quote ("#endif")
interface IAudioMediaStream;
interface IAudioStreamSample;
interface IMemoryData;
interface IAudioData;
// IAudioMediaStream
[
object,
local,
uuid(f7537560-a3be-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IAudioMediaStream : IMediaStream
{
HRESULT GetFormat(
[out] WAVEFORMATEX *pWaveFormatCurrent
);
HRESULT SetFormat(
[in] const WAVEFORMATEX *lpWaveFormat);
HRESULT CreateSample(
[in] IAudioData *pAudioData,
[in] DWORD dwFlags,
[out] IAudioStreamSample **ppSample
);
}
[
object,
local,
uuid(345fee00-aba5-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IAudioStreamSample : IStreamSample
{
HRESULT GetAudioData(
[out] IAudioData **ppAudio
);
}
[
object,
local,
uuid(327fc560-af60-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IMemoryData : IUnknown
{
HRESULT SetBuffer(
[in] DWORD cbSize,
[in] BYTE *pbData,
[in] DWORD dwFlags
);
HRESULT GetInfo(
[out] DWORD *pdwLength,
[out] BYTE **ppbData,
[out] DWORD *pcbActualData
);
HRESULT SetActual(
[in] DWORD cbDataValid
);
}
[
object,
local,
uuid(54c719c0-af60-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IAudioData : IMemoryData
{
HRESULT GetFormat(
[out] WAVEFORMATEX *pWaveFormatCurrent
);
HRESULT SetFormat(
[in] const WAVEFORMATEX *lpWaveFormat
);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,909 +0,0 @@
//------------------------------------------------------------------------------
// File: Control.odl
//
// Desc:
//
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// Neutral/English language type library for basic Quartz control interfaces
// the quartz type library defines the basic control interfaces
[
uuid(56a868b0-0ad4-11ce-b03a-0020af0ba770),
helpstring("ActiveMovie control type library"),
lcid(0x0000),
version(1.0)
]
library QuartzTypeLib
{
importlib("STDOLE32.TLB");
// types are restricted to be automation-compatible
typedef double REFTIME; // ReferenceTime
typedef LONG_PTR OAEVENT; // should be a HANDLE
typedef LONG_PTR OAHWND; // should be an hwnd
// from strmif.idl
typedef long OAFilterState;
// collection interface - represents a collection of IUnknowns
// this is used below to collect filter-info objects, registry-filters
// pin-info objects and wrapped media type objects
[
uuid(56a868b9-0ad4-11ce-b03a-0020af0ba770),
helpstring("Collection"),
odl,
oleautomation,
dual
]
interface IAMCollection : IDispatch
{
// number of items in collection
[propget]
HRESULT Count(
[out, retval] LONG* plCount);
// return IUnknown for contained item by index
HRESULT Item(
[in] long lItem,
[out] IUnknown** ppUnk);
// return IUnknown for an object that implements IEnumVARIANT on
// this collection
[propget]
HRESULT _NewEnum(
[out, retval] IUnknown** ppUnk);
}
// core control providing state control
[
uuid(56a868b1-0ad4-11ce-b03a-0020af0ba770),
helpstring("IMediaControl interface"),
odl,
oleautomation,
dual
]
interface IMediaControl : IDispatch
{
// methods
HRESULT Run();
HRESULT Pause();
HRESULT Stop();
//returns the state. same semantics as IMediaFilter::GetState
HRESULT GetState(
[in] LONG msTimeout,
[out] OAFilterState* pfs);
// adds and connects filters needed to play the specified file
// (same as IFilterGraph::RenderFile)
HRESULT RenderFile(
[in] BSTR strFilename);
// adds to the graph the source filter that can read this file,
// and returns an IFilterInfo object for it (actually returns
// an IDispatch for the IFilterInfo object).
HRESULT AddSourceFilter(
[in] BSTR strFilename,
[out] IDispatch**ppUnk);
// get a collection of IFilterInfo objects representing the
// filters in the graph (returns IDispatch for an object
// that supports IAMCollection
[propget]
HRESULT FilterCollection(
[out, retval] IDispatch** ppUnk);
// get a collection of IRegFilter objects representing the
// filters available in the registry
[propget]
HRESULT RegFilterCollection(
[out, retval] IDispatch** ppUnk);
HRESULT StopWhenReady();
}
// provides an event notification scheme passing events
// asynchronously to applications. See also IMediaEventSink in
// strmif.idl and sdk\h\evcodes.h.
//
// this interface behaves as if events are held on a queue. A call to
// IMediaEventSink::Notify will place an event on this queue. Calling
// GetEvent removes the first item off the queue and returns it. Items are
// returned in the order they were queued (there is no priority scheme).
// The event handle is in a signalled state iff the queue is non-empty.
//
// Apps that issue multiple Run calls without always picking up the
// completion events are advised to call GetEvent or WaitForCompletion
// (with a 0 timeout) repeatedly to remove all events from the queue
// when in stopped or paused state before each Run method.
//
// Parameters to events are actually LONG, IUnknown* or BSTR. You need to
// look at evcode.h for details of parameters to a specific event code.
// In order to correctly free resources, always call FreeEventParams
// after receiving an event.
//
[
uuid(56a868b6-0ad4-11ce-b03a-0020af0ba770),
helpstring("IMediaEvent interface"),
odl,
oleautomation,
dual
]
interface IMediaEvent : IDispatch
{
// get back the event handle. This is manual-reset
// (don't - it's reset by the event mechanism) and remains set
// when events are queued, and reset when the queue is empty.
HRESULT GetEventHandle(
[out] OAEVENT * hEvent);
// remove the next event notification from the head of the queue and
// return it. Waits up to msTimeout millisecs if there are no events.
// if a timeout occurs without any events, this method will return
// E_ABORT, and the value of the event code and other parameters
// is undefined.
//
// If this call returns successfully the caller MUST call
// FreeEventParams(lEventCode, lParam1, lParam2) to release
// resources held inside the event arguments
//
HRESULT GetEvent(
[out] long * lEventCode,
[out] LONG_PTR * lParam1,
[out] LONG_PTR * lParam2,
[in] long msTimeout
);
// Calls GetEvent repeatedly discarding events until it finds a
// completion event (EC_COMPLETE, EC_ERRORABORT, or EC_USERABORT).
// The completion event is removed from the queue and returned
// in pEvCode. Note that the object is still in running mode until
// a Pause or Stop call is made.
// If the timeout occurs, *pEvCode will be 0 and E_ABORT will be
// returned.
HRESULT WaitForCompletion(
[in] long msTimeout,
[out] long * pEvCode);
// cancels any system handling of the specified event code
// and ensures that the events are passed straight to the application
// (via GetEvent) and not handled. A good example of this is
// EC_REPAINT: default handling for this ensures the painting of the
// window and does not get posted to the app.
HRESULT CancelDefaultHandling(
[in] long lEvCode);
// restore the normal system default handling that may have been
// cancelled by CancelDefaultHandling().
HRESULT RestoreDefaultHandling( [in] long lEvCode);
// Free any resources associated with the parameters to an event.
// Event parameters may be LONGs, IUnknown* or BSTR. No action
// is taken with LONGs. IUnknown are passed addrefed and need a
// Release call. BSTR are allocated by the task allocator and will be
// freed by calling the task allocator.
HRESULT FreeEventParams(
[in] long lEvCode,
[in] LONG_PTR lParam1,
[in] LONG_PTR lParam2
);
}
[
uuid(56a868c0-0ad4-11ce-b03a-0020af0ba770),
helpstring("IMediaEventEx interface"),
odl
]
interface IMediaEventEx : IMediaEvent
{
// Register a window to send messages to when events occur
// Parameters:
//
// hwnd - handle of window to notify -
// pass NULL to stop notification
// lMsg - Message id to pass messages with
// lInstanceData - will come back in lParam
//
// The event information must still be retrived by a call
// to GetEvent when the window message is received.
//
// Multiple events may be notified with one window message.
//
HRESULT SetNotifyWindow(
[in] OAHWND hwnd,
[in] long lMsg,
[in] LONG_PTR lInstanceData
);
// Turn events notification on or off
// lNoNotify = 0x00 event notification is ON
// lNoNotify = 0x01 event notification is OFF. The
// handle returned by GetEventHandle will be signalled at
// end of stream
HRESULT SetNotifyFlags(
[in] long lNoNotifyFlags
);
HRESULT GetNotifyFlags(
[out] long *lplNoNotifyFlags
);
}
// seek/cueing for positional media
[
uuid(56a868b2-0ad4-11ce-b03a-0020af0ba770),
helpstring("IMediaPosition interface"),
odl,
oleautomation,
dual
]
interface IMediaPosition : IDispatch
{
// properties
[propget]
HRESULT Duration(
[out, retval] REFTIME* plength);
[propput]
HRESULT CurrentPosition(
[in] REFTIME llTime);
[propget]
HRESULT CurrentPosition(
[out, retval] REFTIME* pllTime);
[propget]
HRESULT StopTime(
[out, retval] REFTIME* pllTime);
[propput]
HRESULT StopTime(
[in] REFTIME llTime);
[propget]
HRESULT PrerollTime(
[out, retval] REFTIME* pllTime);
[propput]
HRESULT PrerollTime(
[in] REFTIME llTime);
[propput]
HRESULT Rate(
[in] double dRate);
[propget]
HRESULT Rate(
[out, retval] double * pdRate);
HRESULT CanSeekForward([out, retval] LONG *pCanSeekForward);
HRESULT CanSeekBackward([out, retval] LONG *pCanSeekBackward);
}
// basic audio-related functionality
[
uuid(56a868b3-0ad4-11ce-b03a-0020af0ba770),
helpstring("IBasicAudio interface"),
odl,
oleautomation,
dual
]
interface IBasicAudio : IDispatch
{
// properties
[propput]
HRESULT Volume(
[in] long lVolume);
[propget]
HRESULT Volume(
[out, retval] long * plVolume);
[propput]
HRESULT Balance(
[in] long lBalance);
[propget]
HRESULT Balance(
[out, retval] long * plBalance);
}
// basic window-related functionality
[
uuid(56a868b4-0ad4-11ce-b03a-0020af0ba770),
helpstring("IVideoWindow interface"),
odl,
oleautomation,
dual
]
interface IVideoWindow : IDispatch
{
// properties
// set and get the window title caption
[propput]
HRESULT Caption([in] BSTR strCaption);
[propget]
HRESULT Caption([out, retval] BSTR *strCaption);
// change the window styles (as per Win32)
[propput]
HRESULT WindowStyle([in] long WindowStyle);
[propget]
HRESULT WindowStyle([out, retval] long *WindowStyle);
// change the extended window styles (as per Win32)
[propput]
HRESULT WindowStyleEx([in] long WindowStyleEx);
[propget]
HRESULT WindowStyleEx([out, retval] long *WindowStyleEx);
[propput]
HRESULT AutoShow([in] long AutoShow);
[propget]
HRESULT AutoShow([out, retval] long *AutoShow);
// change the window state (as per Win32)
[propput]
HRESULT WindowState([in] long WindowState);
[propget]
HRESULT WindowState([out, retval] long *WindowState);
// realise the palette in the background
[propput]
HRESULT BackgroundPalette([in] long BackgroundPalette);
[propget]
HRESULT BackgroundPalette([out, retval] long *pBackgroundPalette);
// affect the visibility of the window
[propput]
HRESULT Visible([in] long Visible);
[propget]
HRESULT Visible([out, retval] long *pVisible);
// change the desktop position of the video window
[propput]
HRESULT Left([in] long Left);
[propget]
HRESULT Left([out, retval] long *pLeft);
[propput]
HRESULT Width([in] long Width);
[propget]
HRESULT Width([out, retval] long *pWidth);
[propput]
HRESULT Top([in] long Top);
[propget]
HRESULT Top([out, retval] long *pTop);
[propput]
HRESULT Height([in] long Height);
[propget]
HRESULT Height([out, retval] long *pHeight);
// change the owning window of the video
[propput]
HRESULT Owner([in] OAHWND Owner);
[propget]
HRESULT Owner([out, retval] OAHWND *Owner);
// change the window to receive posted messages
[propput]
HRESULT MessageDrain([in] OAHWND Drain);
[propget]
HRESULT MessageDrain([out, retval] OAHWND *Drain);
[propget]
HRESULT BorderColor([out, retval] long *Color);
[propput]
HRESULT BorderColor([in] long Color);
[propget]
HRESULT FullScreenMode([out, retval] long *FullScreenMode);
[propput]
HRESULT FullScreenMode([in] long FullScreenMode);
// methods
// ask the renderer to grab it's window the foreground
// and optionally also give the window the input focus
HRESULT SetWindowForeground([in] long Focus);
// owners should pass WM_PALETTECHANGED and WM_SYSCOLORCHANGE
// messages on the filter graph so they can be distributed
// otherwise child renderers never see these messages go by
HRESULT NotifyOwnerMessage([in] OAHWND hwnd,
[in] long uMsg,
[in] LONG_PTR wParam,
[in] LONG_PTR lParam
);
// get and set the window position on the desktop
HRESULT SetWindowPosition([in] long Left,
[in] long Top,
[in] long Width,
[in] long Height);
HRESULT GetWindowPosition([out] long *pLeft,
[out] long *pTop,
[out] long *pWidth,
[out] long *pHeight);
// get the ideal sizes for the video image playback (client) area
HRESULT GetMinIdealImageSize([out] long *pWidth,[out] long *pHeight);
HRESULT GetMaxIdealImageSize([out] long *pWidth,[out] long *pHeight);
// get the restored window size when we're maximised or iconic
HRESULT GetRestorePosition([out] long *pLeft,
[out] long *pTop,
[out] long *pWidth,
[out] long *pHeight);
// show and hide cursors useful when fullscreen
HRESULT HideCursor([in] long HideCursor);
HRESULT IsCursorHidden([out] long *CursorHidden);
}
// basic video-related functionality
[
uuid(56a868b5-0ad4-11ce-b03a-0020af0ba770),
helpstring("IBasicVideo interface"),
odl,
oleautomation,
dual
]
interface IBasicVideo : IDispatch
{
// properties
// Video specific (approximate) bit and frame rates
[propget]
HRESULT AvgTimePerFrame([out, retval] REFTIME *pAvgTimePerFrame);
[propget]
HRESULT BitRate([out, retval] long *pBitRate);
[propget]
HRESULT BitErrorRate([out, retval] long *pBitErrorRate);
// read the native video size
[propget]
HRESULT VideoWidth([out, retval] long *pVideoWidth);
[propget]
HRESULT VideoHeight([out, retval] long *pVideoHeight);
// change the source rectangle for the video
[propput]
HRESULT SourceLeft([in] long SourceLeft);
[propget]
HRESULT SourceLeft([out, retval] long *pSourceLeft);
[propput]
HRESULT SourceWidth([in] long SourceWidth);
[propget]
HRESULT SourceWidth([out, retval] long *pSourceWidth);
[propput]
HRESULT SourceTop([in] long SourceTop);
[propget]
HRESULT SourceTop([out, retval] long *pSourceTop);
[propput]
HRESULT SourceHeight([in] long SourceHeight);
[propget]
HRESULT SourceHeight([out, retval] long *pSourceHeight);
// change the destination rectangle for the video
[propput]
HRESULT DestinationLeft([in] long DestinationLeft);
[propget]
HRESULT DestinationLeft([out, retval] long *pDestinationLeft);
[propput]
HRESULT DestinationWidth([in] long DestinationWidth);
[propget]
HRESULT DestinationWidth([out, retval] long *pDestinationWidth);
[propput]
HRESULT DestinationTop([in] long DestinationTop);
[propget]
HRESULT DestinationTop([out, retval] long *pDestinationTop);
[propput]
HRESULT DestinationHeight([in] long DestinationHeight);
[propget]
HRESULT DestinationHeight([out, retval] long *pDestinationHeight);
// methods
// get and set the source rectangle position
HRESULT SetSourcePosition([in] long Left,
[in] long Top,
[in] long Width,
[in] long Height);
HRESULT GetSourcePosition([out] long *pLeft,
[out] long *pTop,
[out] long *pWidth,
[out] long *pHeight);
HRESULT SetDefaultSourcePosition();
// get and set the destination rectangle position
HRESULT SetDestinationPosition([in] long Left,
[in] long Top,
[in] long Width,
[in] long Height);
HRESULT GetDestinationPosition([out] long *pLeft,
[out] long *pTop,
[out] long *pWidth,
[out] long *pHeight);
HRESULT SetDefaultDestinationPosition();
// get the native video dimensions
HRESULT GetVideoSize([out] long *pWidth,[out] long *pHeight);
// get all or some of the current video palette
HRESULT GetVideoPaletteEntries([in] long StartIndex,
[in] long Entries,
[out] long *pRetrieved,
[out] long *pPalette);
HRESULT GetCurrentImage([in,out] long *pBufferSize,
[out] long *pDIBImage);
// are we using a default source or destination
HRESULT IsUsingDefaultSource();
HRESULT IsUsingDefaultDestination();
}
// interface extension to IBasicVideo to return preferred aspect ratio
[
uuid(329bb360-f6ea-11d1-9038-00a0c9697298),
helpstring("IBasicVideo2"),
odl
]
interface IBasicVideo2 : IBasicVideo
{
// This may not match the native video dimensions because of
// non-square pixels or whatever.
// The video may not always be displayed in the preferred
// aspect ratio for performance reasons
HRESULT GetPreferredAspectRatio([out] long *plAspectX,
[out] long *plAspectY);
}
// interface returned to a command that has been queued via IQueueCommand
[
uuid(56a868b8-0ad4-11ce-b03a-0020af0ba770),
helpstring("IDeferredCommand"),
odl
]
interface IDeferredCommand : IUnknown
{
HRESULT Cancel();
HRESULT Confidence(
[out] LONG* pConfidence);
HRESULT Postpone(
[in] REFTIME newtime);
// return value is S_OK if completed. phrResult is set to the
// result of the deferred command.
HRESULT GetHResult(
[out] HRESULT* phrResult);
};
// queue an IDispatch-based command for execution at a specified time
[
uuid(56a868b7-0ad4-11ce-b03a-0020af0ba770),
helpstring("IQueueCommand"),
odl
]
interface IQueueCommand : IUnknown
{
HRESULT InvokeAtStreamTime(
[out] IDeferredCommand** pCmd,
[in] REFTIME time, // at this streamtime
[in] GUID* iid, // call this interface
[in] long dispidMethod, // ..and this method
[in] short wFlags, // method/property
[in] long cArgs, // count of args
[in] VARIANT* pDispParams, // actual args
[in, out] VARIANT* pvarResult, // return value
[out] short* puArgErr // which arg in error
);
HRESULT InvokeAtPresentationTime(
[out] IDeferredCommand** pCmd,
[in] REFTIME time, // at this presentation time
[in] GUID* iid, // call this interface
[in] long dispidMethod, // ..and this method
[in] short wFlags, // method/property
[in] long cArgs, // count of args
[in] VARIANT* pDispParams, // actual args
[in, out] VARIANT* pvarResult, // return value
[out] short* puArgErr // which arg in error
);
};
// the filgraph object (CLSID_Filgraph)
[
uuid(e436ebb3-524f-11ce-9f53-0020af0ba770),
helpstring("Filtergraph type info")
]
coclass FilgraphManager
{
[default] interface IMediaControl;
interface IMediaEvent;
interface IMediaPosition;
interface IBasicAudio;
interface IBasicVideo;
interface IVideoWindow;
};
// represents a filter (you can't QI for IBaseFilter from this object)
[
uuid(56a868ba-0ad4-11ce-b03a-0020af0ba770),
helpstring("FilterInfo"),
odl,
oleautomation,
dual
]
interface IFilterInfo : IDispatch
{
// find a pin given an id - returns an object supporting
// IPinInfo
HRESULT FindPin(
[in] BSTR strPinID,
[out] IDispatch** ppUnk);
// filter name
[propget]
HRESULT Name(
[out, retval] BSTR* strName);
// Vendor info string
[propget]
HRESULT VendorInfo(
[out, retval] BSTR* strVendorInfo);
// returns the actual filter object (supports IBaseFilter)
[propget]
HRESULT Filter(
[out, retval] IUnknown **ppUnk);
// returns an IAMCollection object containing the PinInfo objects
// for this filter
[propget]
HRESULT Pins(
[out, retval] IDispatch ** ppUnk);
// returns -1 if true or 0 if false (OATRUE/FALSE)
[propget]
HRESULT IsFileSource(
[out, retval] LONG * pbIsSource);
[propget]
HRESULT Filename(
[out, retval] BSTR* pstrFilename);
[propput]
HRESULT Filename(
[in] BSTR strFilename);
}
[
uuid(56a868bb-0ad4-11ce-b03a-0020af0ba770),
helpstring("Registry Filter Info"),
odl,
oleautomation,
dual
]
interface IRegFilterInfo : IDispatch
{
// get the name of this filter
[propget]
HRESULT Name(
[out, retval] BSTR* strName);
// make an instance of this filter, add it to the graph and
// return an IFilterInfo for it.
HRESULT Filter(
[out] IDispatch** ppUnk);
}
// wrapper for a media type
[
uuid(56a868bc-0ad4-11ce-b03a-0020af0ba770),
helpstring("Media Type"),
odl,
oleautomation,
dual
]
interface IMediaTypeInfo : IDispatch
{
// get the major type GUID as a string
[propget]
HRESULT Type(
[out, retval] BSTR* strType);
// get the subtype GUID as a string
[propget]
HRESULT Subtype(
[out, retval] BSTR* strType);
}
[
uuid(56a868bd-0ad4-11ce-b03a-0020af0ba770),
helpstring("Pin Info"),
odl,
oleautomation,
dual
]
interface IPinInfo : IDispatch
{
// get the pin object (IUnknown for an object that
// supports IPin
[propget]
HRESULT Pin(
[out, retval] IUnknown** ppUnk);
// get the PinInfo object for the pin we are connected to
[propget]
HRESULT ConnectedTo(
[out, retval] IDispatch** ppUnk);
// get the media type on this connection - returns an
// object supporting IMediaTypeInfo
[propget]
HRESULT ConnectionMediaType(
[out, retval] IDispatch** ppUnk);
// return the FilterInfo object for the filter this pin
// is part of
[propget]
HRESULT FilterInfo(
[out, retval] IDispatch** ppUnk);
// get the name of this pin
[propget]
HRESULT Name(
[out, retval] BSTR* ppUnk);
// pin direction
[propget]
HRESULT Direction(
[out, retval] LONG *ppDirection);
// PinID - can pass to IFilterInfo::FindPin
[propget]
HRESULT PinID(
[out, retval] BSTR* strPinID);
// collection of preferred media types (IAMCollection)
[propget]
HRESULT MediaTypes(
[out, retval] IDispatch** ppUnk);
// Connect to the following pin, using other transform
// filters as necessary. pPin can support either IPin or IPinInfo
HRESULT Connect(
[in] IUnknown* pPin);
// Connect directly to the following pin, not using any intermediate
// filters
HRESULT ConnectDirect(
[in] IUnknown* pPin);
// Connect directly to the following pin, using the specified
// media type only. pPin is an object that must support either
// IPin or IPinInfo, and pMediaType must support IMediaTypeInfo.
HRESULT ConnectWithType(
[in] IUnknown * pPin,
[in] IDispatch * pMediaType);
// disconnect this pin and the corresponding connected pin from
// each other. (Calls IPin::Disconnect on both pins).
HRESULT Disconnect(void);
// render this pin using any necessary transform and rendering filters
HRESULT Render(void);
}
//--------------------------------------------------------------------
//
// IAMStats - statistics
//
// Note that the calls using an index are likely to be much faster
//--------------------------------------------------------------------
[
uuid(bc9bcf80-dcd2-11d2-abf6-00a0c905f375),
helpstring("Statistics"),
odl,
oleautomation,
dual
]
interface IAMStats : IDispatch {
// Reset all stats
HRESULT Reset();
// Get number of stats collected
[propget]
HRESULT Count(
[out, retval] LONG* plCount);
// Pull out a specific value by position
HRESULT GetValueByIndex([in] long lIndex,
[out] BSTR *szName,
[out] long *lCount,
[out] double *dLast,
[out] double *dAverage,
[out] double *dStdDev,
[out] double *dMin,
[out] double *dMax);
// Pull out a specific value by name
HRESULT GetValueByName([in] BSTR szName,
[out] long *lIndex,
[out] long *lCount,
[out] double *dLast,
[out] double *dAverage,
[out] double *dStdDev,
[out] double *dMin,
[out] double *dMax);
// The calls below are for generators of statistics
// Return the index for a string - optinally create
HRESULT GetIndex([in] BSTR szName,
[in] long lCreate,
[out] long *plIndex);
// Add a new value
HRESULT AddValue([in] long lIndex,
[in] double dValue);
}
};

View File

@ -1,86 +0,0 @@
//------------------------------------------------------------------------------
// File: DDStream.idl
//
// Desc: Used by MIDL tool to generate ddstream.h
//
// Copyright (c) 1998-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "unknwn.idl";
import "mmstream.idl";
cpp_quote("//")
cpp_quote("// The following declarations within the 'if 0' block are dummy typedefs used to make")
cpp_quote("// the ddstream.idl file build. The actual definitions are contained in DDRAW.H")
cpp_quote("//")
cpp_quote("#if 0")
typedef void * LPDDSURFACEDESC;
typedef struct tDDSURFACEDESC DDSURFACEDESC;
cpp_quote("#endif")
cpp_quote("#include <ddraw.h>")
enum {
DDSFF_PROGRESSIVERENDER = 0x00000001
};
interface IDirectDraw;
interface IDirectDrawSurface;
interface IDirectDrawPalette;
interface IDirectDrawMediaStream;
interface IDirectDrawStreamSample;
// IDirectDrawMediaStream
[
object,
local,
uuid(F4104FCE-9A70-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IDirectDrawMediaStream : IMediaStream
{
HRESULT GetFormat(
[out] DDSURFACEDESC *pDDSDCurrent,
[out] IDirectDrawPalette **ppDirectDrawPalette,
[out] DDSURFACEDESC *pDDSDDesired,
[out] DWORD *pdwFlags);
HRESULT SetFormat(
[in] const DDSURFACEDESC *pDDSurfaceDesc,
[in] IDirectDrawPalette *pDirectDrawPalette);
HRESULT GetDirectDraw(
[out] IDirectDraw **ppDirectDraw);
HRESULT SetDirectDraw(
[in] IDirectDraw *pDirectDraw);
HRESULT CreateSample(
[in] IDirectDrawSurface *pSurface,
[in] const RECT *pRect,
[in] DWORD dwFlags,
[out]IDirectDrawStreamSample **ppSample);
HRESULT GetTimePerFrame(
[out] STREAM_TIME *pFrameTime);
};
// IDirectDrawStreamSample
[
object,
local,
uuid(F4104FCF-9A70-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IDirectDrawStreamSample : IStreamSample
{
HRESULT GetSurface(
[out] IDirectDrawSurface ** ppDirectDrawSurface,
[out] RECT * pRect);
HRESULT SetRect(
[in] const RECT * pRect);
};

View File

@ -1,38 +0,0 @@
//------------------------------------------------------------------------------
// File: DevEnum.idl
//
// Desc: IDL source for devenum.dll. This file will be processed by the
// MIDL tool to produce the type library (devenum.tlb) and marshalling
// code.
//
// Copyright (c) 1998-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
cpp_quote("#define CDEF_CLASS_DEFAULT 0x0001")
cpp_quote("#define CDEF_BYPASS_CLASS_MANAGER 0x0002")
//cpp_quote("#define CDEF_CLASS_LEGACY 0x0004")
cpp_quote("#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008")
// If any of these flags are set, then only the types specified
// by the flags are enumerated
cpp_quote("#define CDEF_DEVMON_CMGR_DEVICE 0x0010")
cpp_quote("#define CDEF_DEVMON_DMO 0x0020")
cpp_quote("#define CDEF_DEVMON_PNP_DEVICE 0x0040")
cpp_quote("#define CDEF_DEVMON_FILTER 0x0080")
cpp_quote("#define CDEF_DEVMON_SELECTIVE_MASK 0x00f0")
[
object,
uuid(29840822-5B84-11D0-BD3B-00A0C911CE86),
pointer_default(unique)
]
interface ICreateDevEnum : IUnknown
{
import "oaidl.idl";
HRESULT CreateClassEnumerator(
[in] REFCLSID clsidDeviceClass,
[out] IEnumMoniker ** ppEnumMoniker,
[in] DWORD dwFlags);
}

View File

@ -1,34 +0,0 @@
//------------------------------------------------------------------------------
// File: DMODShow.idl
//
// Desc: This file will be processed by the MIDL tool to
// produce dmodshow.h and proxy-stub code.
//
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "unknwn.idl";
import "objidl.idl";
import "mediaobj.idl";
// 94297043-bd82-4dfd-b0de-8177739c6d20
cpp_quote("DEFINE_GUID(CLSID_DMOWrapperFilter, 0x94297043,0xbd82,0x4dfd,0xb0,0xde,0x81,0x77,0x73,0x9c,0x6d,0x20);")
// bcd5796c-bd52-4d30-ab76-70f975b89199
cpp_quote("DEFINE_GUID(CLSID_DMOFilterCategory,0xbcd5796c,0xbd52,0x4d30,0xab,0x76,0x70,0xf9,0x75,0xb8,0x91,0x99);")
[
object,
uuid(52d6f586-9f0f-4824-8fc8-e32ca04930c2),
]
interface IDMOWrapperFilter : IUnknown
{
// Init is passed in the clsid (so it can call CoCreateInstance)
// and the catgory under which the DMO lives.
// Note that catDMO can be CLSID_NULL, in which case no special
// category-specific processing will be invoked in the wrapper filter.
HRESULT Init(REFCLSID clsidDMO, REFCLSID catDMO);
}

View File

@ -1,59 +0,0 @@
//------------------------------------------------------------------------------
// File: DShowASF.idl
//
// Desc:
//
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "unknwn.idl";
import "objidl.idl";
import "strmif.idl"; // for media type and time definitions
import "wmsdkidl.idl";
cpp_quote( "EXTERN_GUID( IID_IConfigAsfWriter,0x45086030,0xF7E4,0x486a,0xB5,0x04,0x82,0x6B,0xB5,0x79,0x2A,0x3B );" )
interface IConfigAsfWriter;
interface IWMProfile;
// Interface to control the ASF writer
[
object,
uuid(45086030-F7E4-486a-B504-826BB5792A3B),
pointer_default(unique)
]
interface IConfigAsfWriter : IUnknown
{
//
// The user is expected to enumerate profiles using the wmsdk IWMProfileManager
// method and then pass the desired profile index to the ASF Writer filter via this
// method. The filter will then try to configure itself for the selected profile.
//
// NOTE: These 2 XXXProfileId methods are now obsolete because they assume
// version 4.0 WMSDK profiles. To configure the filter for later profile
// versions using a profile index, use the XXXProfile methods which take
// the IWMProfile* directly.
//
HRESULT ConfigureFilterUsingProfileId([in] DWORD dwProfileId);
HRESULT GetCurrentProfileId([out] DWORD *pdwProfileId);
//
// configure using a pre-defined wmsdk profile guid
//
HRESULT ConfigureFilterUsingProfileGuid([in] REFGUID guidProfile);
HRESULT GetCurrentProfileGuid([out] GUID *pProfileGuid);
//
// Use these methods when a custom profile setup is preferred
//
HRESULT ConfigureFilterUsingProfile([in] IWMProfile * pProfile);
HRESULT GetCurrentProfile([out] IWMProfile **ppProfile);
//
// allow app to control whether or not to index file
//
HRESULT SetIndexMode( [in] BOOL bIndexFile );
HRESULT GetIndexMode( [out] BOOL *pbIndexFile );
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,318 +0,0 @@
//------------------------------------------------------------------------------
// File: DynGraph.idl
//
// Desc: Dynamic graph interfaces
//
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
interface IPinConnection;
interface IPinFlowControl;
interface IGraphConfig;
interface IGraphConfigCallback;
//--------------------------------------------------------------------
//
// IPinConnection - supported by input pins
//
//--------------------------------------------------------------------
[
local,
object,
uuid(4a9a62d3-27d4-403d-91e9-89f540e55534),
pointer_default(unique)
]
interface IPinConnection : IUnknown {
// Do you accept this type chane in your current state?
HRESULT DynamicQueryAccept([in] const AM_MEDIA_TYPE *pmt);
// Set event when EndOfStream receive - do NOT pass it on
// This condition is cancelled by a flush or Stop
HRESULT NotifyEndOfStream([in] HANDLE hNotifyEvent);
// Are you an 'end pin'
HRESULT IsEndPin();
HRESULT DynamicDisconnect();
};
//--------------------------------------------------------------------
//
// IPinFlowControl - supported by output pins
//
//--------------------------------------------------------------------
[
local,
object,
uuid(c56e9858-dbf3-4f6b-8119-384af2060deb),
pointer_default(unique)
]
interface IPinFlowControl : IUnknown {
// Block processing on this pin
HRESULT Block([in] DWORD dwBlockFlags, [in] HANDLE hEvent);
}
// block flags
enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001, // 0 means unblock
};
// Reconnect flags
typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x00000001,
AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x00000002,
AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004
} AM_GRAPH_CONFIG_RECONNECT_FLAGS;
// RemoveFilterEx flags
enum _REM_FILTER_FLAGS {
REMFILTERF_LEAVECONNECTED = 0x00000001
};
typedef enum _AM_FILTER_FLAGS {
AM_FILTER_FLAGS_REMOVABLE = 0x00000001
} AM_FILTER_FLAGS;
//--------------------------------------------------------------------
//
// IGraphConfig
//
//--------------------------------------------------------------------
[
local,
object,
uuid(03A1EB8E-32BF-4245-8502-114D08A9CB88),
pointer_default(unique)
]
interface IGraphConfig : IUnknown {
HRESULT Reconnect([in] IPin *pOutputPin,
[in] IPin *pInputPin,
[in] const AM_MEDIA_TYPE *pmtFirstConnection,
[in] IBaseFilter *pUsingFilter, // can be NULL
[in] HANDLE hAbortEvent,
[in] DWORD dwFlags);
HRESULT Reconfigure([in] IGraphConfigCallback *pCallback,
[in] PVOID pvContext,
[in] DWORD dwFlags,
[in] HANDLE hAbortEvent);
HRESULT AddFilterToCache([in] IBaseFilter *pFilter);
HRESULT EnumCacheFilter([out] IEnumFilters **pEnum);
HRESULT RemoveFilterFromCache([in]IBaseFilter *pFilter);
// Get the start time associated with the last Run() call
// If the graph is not running returns VFW_E_WRONG_STATE
HRESULT GetStartTime([out] REFERENCE_TIME *prtStart);
HRESULT PushThroughData(
[in] IPin *pOutputPin,
[in] IPinConnection *pConnection,
[in] HANDLE hEventAbort);
HRESULT SetFilterFlags([in] IBaseFilter *pFilter, [in] DWORD dwFlags);
HRESULT GetFilterFlags([in] IBaseFilter *pFilter, [out] DWORD *pdwFlags);
HRESULT RemoveFilterEx( [in] IBaseFilter *pFilter, DWORD Flags );
}
//--------------------------------------------------------------------
//
// IGraphConfigCallback
//
//--------------------------------------------------------------------
[
local,
object,
uuid(ade0fd60-d19d-11d2-abf6-00a0c905f375),
pointer_default(unique)
]
interface IGraphConfigCallback : IUnknown
{
HRESULT Reconfigure(PVOID pvContext, DWORD dwFlags);
}
// Filter Chain Definition
//
// Filter chains have the following properties:
//
// - Each filter chain has one or more filters.
//
// - Each filter in a filter chain has at most one connected input pin and one
// connected output pin. For example, filters A, C, D, F, G, H, I, J and K
// (see the diagram below) can be in a filter chain because each one has at
// most one connected input pin and one connected output pin.
//
// - Any filter in a chain is reachable by any other filter in the chain.
// For example, in the filter chain F-G-H, F can reach H by following the F-
// G connection to G and then following the G-H connection to H. Filters F
// and J cannot be in the same filter chain because J is not reachable from
// F. Anotherwords, there no sequence of connected filters between F and J.
//
// - The start filter is the only filter in the filter chain who's input
// pin is not connected to another filter in the chain. For instance, F is
// the start filter in F-G-H because F's input pin is connected to E and E
// is not in the filter chain. G's input pin is connected to F and H's is
// connected to G. Both F and G are in the filter chain.
//
// - The end filter is the only filter in the filter chain who's output pin
// is not connected to another filter in the chain. For example, in the
// filter chain J-K, K is the end filter because K's output pin is
// connected to L. J's output pin is connected to K and K is in the J-K
// filter chain.
//
//
// --->|---| |---|--->
// | C |--->| D |
// |---| |---|--->|---| |---|--->|---| |---| |---| |---|
// | A |--->| B | | E |--->| F |--->| G |--->| H |
// |---| |---|--->|---|------------>|---| |---| |---| |---|
// | I |--->
// --->|---|--->
//
// |---| |---| |---|
// | J |--->| K |--->| L |
// |---| |---| |---|
//
// Example Filter Graph
//
//
//
// IFilterChain Methods Documentation
//
// HRESULT StartChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
//
// StartChain() switches all the filters in the chain into the running state
// If one of the filters will not switch to the running state, then all the filters
// in the chain are stopped. This method can only be called if the filter graph is
// running.
//
// Parameters:
// - pStartFilter [in]
// The first filter in the filter chain. Note that this can be the same
// filter as pEndFilter .
//
// - pEndFilter [in]
// The last filter in the filter chain. Note that this can be the same
// filter as pStartFilter. If pEndFilter is NULL then the filter chain extends
// from pStartFilter to the last downstream filter which can be in a filter chain.
// For example, IFilterChain::StartChain( A, NULL ) would start filter A.
// IFilterChain::StartChain( G, NULL ) would start filters G and H.
// IFilterChain::StartChain( C, NULL ) would start filters C and D. Finally,
// IFilterChain::StartChain( E, NULL ) would fail because E cannot be in a
// filter chain (see the Filter Chain Definition section for more information).
//
// Return Value:
// An HRESULT. See the Direct Show SDK and COM SDK documentation for more
// information on interpreting HRESULTs.
//
//
//
//
// HRESULT PauseChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
//
// PauseChain() switches all the filters in a chain to the paused state. If it cannot
// switch one of the filtres into the paused state, all the filters in the chain are
// stopped. This method can only be called if the filter graph is paused.
//
// Parameters:
// - pStartFilter [in]
// The first filter in the filter chain. Note that this can be the same
// filter as pEndFilter .
//
// - pEndFilter [in]
// The last filter in the filter chain. Note that this can be the same
// filter as pStartFilter. If pEndFilter is NULL then the filter chain extends
// from pStartFilter to the last downstream filter which can be in a filter chain.
// For example, IFilterChain::StopChain( A, NULL ) would stop filter A.
// IFilterChain::StopChain( G, NULL ) would stop filters G and H.
// IFilterChain::StopChain( C, NULL ) would stop filters C and D. Finally,
// IFilterChain::StopChain( E, NULL ) would fail because E cannot be in a filter
// chain (see the Filter Chain Definition section for more information).
//
//
// Return Value:
// An HRESULT. See the Direct Show SDK and COM SDK documentation for more
// information on interpreting HRESULTs.
//
//
//
// HRESULT StopChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
//
// StopChain() switches all the filters in chain to the stopped state.
//
// Parameters:
// - pStartFilter [in]
// The first filter in the filter chain. Note that this can be the same
// filter as pEndFilter .
//
// - pEndFilter [in]
// The last filter in the filter chain. Note that this can be the same
// filter as pStartFilter. If pEndFilter is NULL then the filter chain extends
// from pStartFilter to the last downstream filter which can be in a filter chain.
// For example, IFilterChain::StopChain( A, NULL ) would stop filter A.
// IFilterChain::StopChain( G, NULL ) would stop filters G and H.
// IFilterChain::StopChain( C, NULL ) would stop filters C and D. Finally,
// IFilterChain::StopChain( E, NULL ) would fail because E cannot be in a filter
// chain (see the Filter Chain Definition section for more information).
//
//
// Return Value:
// An HRESULT. See the Direct Show SDK and COM SDK documentation for more
// information on interpreting HRESULTs.
//
//
//
//
//
// HRESULT RemoveChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
//
// RemoveChain() removes every filter in a chain from the filter graph.
// The filters can be removed while the graph is running.
//
// Parameters:
// - pStartFilter [in]
// The first filter in the filter chain. Note that this can be the same
// filter as pEndFilter .
//
// - pEndFilter [in]
// The last filter in the filter chain. Note that this can be the same
// filter as pStartFilter. If pEndFilter is NULL then the filter chain
// extends from pStartFilter to the last downstream filter which can be in a
// filter chain. For example, IFilterChain::RemoveChain( A, NULL ) would remove
// filter A from the filter graph. IFilterChain::RemoveChain( G, NULL ) would
// remove filters G and H. IFilterChain::RemoveChain( C, NULL ) would remove
// filters C and D. Finally, IFilterChain::RemoveChain( E, NULL ) would fail
// because E cannot be in a filter chain (see the Filter Chain Definition
// section for more information).
//
//
// Return Value:
// An HRESULT. See the Direct Show SDK and COM SDK documentation for more
// information on interpreting HRESULTs.
//
//
[
local,
object,
uuid(DCFBDCF6-0DC2-45f5-9AB2-7C330EA09C29),
pointer_default(unique)
]
interface IFilterChain : IUnknown
{
HRESULT StartChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
HRESULT PauseChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
HRESULT StopChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
HRESULT RemoveChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter );
}

View File

@ -1,144 +0,0 @@
//------------------------------------------------------------------------------
// File: IAMovie.idl
//
// Desc:
//
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
[
object,
uuid(359ace10-7688-11cf-8b23-00805f6cef60),
pointer_default(unique)
]
interface IAMovie : IFilterGraph
{
// IGraphBuilder
// Connect these two pins directly or indirectly, using transform filters
// if necessary.
HRESULT Connect
( [in] IPin * ppinOut, // the output pin
[in] IPin * ppinIn // the input pin
);
// Connect this output pin directly or indirectly, using transform filters
// if necessary to something that will render it.
HRESULT Render
( [in] IPin * ppinOut // the output pin
);
// IMediaControl methods
HRESULT Run();
HRESULT Pause();
HRESULT Stop();
//returns the state. same semantics as IMediaFilter::GetState
HRESULT GetState(
[in] LONG msTimeout,
[out] FILTER_STATE* pfs);
// adds and connects filters needed to play the specified file
HRESULT RenderFile(
[in] LPCWSTR strFilename);
// adds to the graph the source filter that can read this file,
// and returns an IFilterInfo object for it
HRESULT AddSourceFilter(
[in] LPCWSTR strFilename,
[out] IBaseFilter ** ppUnk);
// get back the event handle. This is manual-reset
// (don't - it's reset by the event mechanism) and remains set
// when events are queued, and reset when the queue is empty.
HRESULT GetEventHandle(
[out] HEVENT * hEvent);
// remove the next event notification from the head of the queue and
// return it. Waits up to msTimeout millisecs if there are no events.
// if a timeout occurs without any events, this method will return
// E_ABORT, and the value of the event code and other parameters
// is undefined.
HRESULT GetEvent(
[out] long * lEventCode,
[out] long * lParam1,
[out] long * lParam2,
[in] long msTimeout
);
// Calls GetEvent repeatedly discarding events until it finds a
// completion event (EC_COMPLETE, EC_ERRORABORT, or EC_USERABORT).
// The completion event is removed from the queue and returned
// in pEvCode. Note that the object is still in running mode until
// a Pause or Stop call is made.
// If the timeout occurs, *pEvCode will be 0 and E_ABORT will be
// returned.
HRESULT WaitForCompletion(
[in] long msTimeout,
[out] long * pEvCode);
// cancels any system handling of the specified event code
// and ensures that the events are passed straight to the application
// (via GetEvent) and not handled. A good example of this is
// EC_REPAINT: default handling for this ensures the painting of the
// window and does not get posted to the app.
HRESULT CancelDefaultHandling(
[in] long lEvCode);
// restore the normal system default handling that may have been
// cancelled by CancelDefaultHandling().
HRESULT RestoreDefaultHandling( [in] long lEvCode);
// properties
HRESULT get_Duration(
[out] REFTIME* plength);
HRESULT put_CurrentPosition(
[in] REFTIME llTime);
HRESULT get_CurrentPosition(
[out] REFTIME* pllTime);
HRESULT get_StopTime(
[out] REFTIME* pllTime);
HRESULT put_StopTime(
[in] REFTIME llTime);
HRESULT get_PrerollTime(
[out] REFTIME* pllTime);
HRESULT put_PrerollTime(
[in] REFTIME llTime);
HRESULT put_Rate(
[in] double dRate);
HRESULT get_Rate(
[out] double * pdRate);
/* New methods */
HRESULT RemoveAllFilters();
HRESULT Play();
HRESULT PlayFile([in] LPCWSTR strFilename);
HRESULT EnumFiltersByInterface( [in] REFIID riid, [out] IEnumFilters ** ppEnum );
HRESULT EnumPins( [out] IEnumPins ** ppEnum );
HRESULT EnumPinsIn( [out] IEnumPins ** ppEnum );
HRESULT EnumPinsOut( [out] IEnumPins ** ppEnum );
HRESULT RenderAll();
HRESULT RenderNewFile( [in] LPCWSTR strFilename);
// Free any resources associated with the parameters to an event.
// Event parameters may be LONGs, IUnknown* or BSTR. No action
// is taken with LONGs. IUnknown are passed addrefed and need a
// Release call. BSTR are allocated by the task allocator and will be
// freed by calling the task allocator.
HRESULT FreeEventParams(
[in] long lEvCode,
[in] long lParam1,
[in] long lParam2);
}

View File

@ -1,411 +0,0 @@
//------------------------------------------------------------------------------
// File: MediaObj.idl
//
// Desc: Define the interfaces for DirectX Media Objects. This file will be
// processed by the MIDL tool to produce mediaobj.h and proxy-stub code.
//
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "unknwn.idl";
import "objidl.idl";
// DMO_MEDIA_TYPE structure
cpp_quote("#ifdef __strmif_h__")
cpp_quote("typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE;")
cpp_quote("#else")
typedef struct _DMOMediaType {
GUID majortype;
GUID subtype;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
ULONG lSampleSize;
GUID formattype;
IUnknown *pUnk;
ULONG cbFormat;
[size_is(cbFormat)] BYTE * pbFormat;
} DMO_MEDIA_TYPE;
typedef LONGLONG REFERENCE_TIME;
cpp_quote("#endif")
// Per-buffer flags that apply to input buffers
enum _DMO_INPUT_DATA_BUFFER_FLAGS {
DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001,
DMO_INPUT_DATA_BUFFERF_TIME = 0x00000002,
DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004
};
// Per-buffer flags that apply to output buffers.
enum _DMO_OUTPUT_DATA_BUFFER_FLAGS {
DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001,
DMO_OUTPUT_DATA_BUFFERF_TIME = 0x00000002,
DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004,
//
// This flag means the object could have generated more data for this
// output stream, even with no additional input from any input stream,
// but the output buffer did not have sufficient room.
//
DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE = 0x01000000
};
// Flags returned by GetInputStatus()
enum _DMO_INPUT_STATUS_FLAGS {
//
// ACCEPT_DATA indicates that the input stream is ready to accept
// new data via ProcessInput().
//
DMO_INPUT_STATUSF_ACCEPT_DATA = 0x00000001
};
// Flags returned by GetInputStreamInfo()
enum _DMO_INPUT_STREAM_INFO_FLAGS {
DMO_INPUT_STREAMF_WHOLE_SAMPLES = 0x00000001,
DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002,
DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004,
DMO_INPUT_STREAMF_HOLDS_BUFFERS = 0x00000008
};
// Flags returned by GetOutputStreamInfo()
enum _DMO_OUTPUT_STREAM_INFO_FLAGS {
DMO_OUTPUT_STREAMF_WHOLE_SAMPLES = 0x00000001,
DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002,
DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004,
DMO_OUTPUT_STREAMF_DISCARDABLE = 0x00000008,
DMO_OUTPUT_STREAMF_OPTIONAL = 0x00000010
};
// SetType flags
enum _DMO_SET_TYPE_FLAGS {
DMO_SET_TYPEF_TEST_ONLY = 0x00000001,// check but don't set
DMO_SET_TYPEF_CLEAR = 0x00000002 // unset
};
// Process Output Flags
enum _DMO_PROCESS_OUTPUT_FLAGS {
DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001 // Discard
};
// Buffer wrapper interface
[
object,
uuid(59eff8b9-938c-4a26-82f2-95cb84cdc837)
]
interface IMediaBuffer : IUnknown
{
HRESULT SetLength(
DWORD cbLength
);
HRESULT GetMaxLength(
[out] DWORD *pcbMaxLength
);
HRESULT GetBufferAndLength(
[out] BYTE **ppBuffer, // not filled if NULL
[out] DWORD *pcbLength // not filled if NULL
);
}
//
// Output buffer info structure: one of these must be passed in for each
// output stream with every ProcessOutput() call
// All [out] fields should be
// assumed undefined if ProcessOutput() failed
//
typedef struct _DMO_OUTPUT_DATA_BUFFER {
IMediaBuffer *pBuffer; // [in] can be NULL
// ProcessOutput() must set any appropriate flags and zero out the rest.
DWORD dwStatus; // [out] DMO_OUTPUT_DATA_BUFFERF_XXX (INCOMPLETE, etc.)
//
// Each of these is valid if the corresponding flag is set in dwStatus
//
REFERENCE_TIME rtTimestamp; // [out]
REFERENCE_TIME rtTimelength; // [out]
} DMO_OUTPUT_DATA_BUFFER, *PDMO_OUTPUT_DATA_BUFFER;
// Interface supported by media objects
[
object,
uuid(d8ad0f58-5494-4102-97c5-ec798e59bcf4)
]
interface IMediaObject : IUnknown
{
//
// Stream enumeration
//
HRESULT GetStreamCount(
[out] DWORD *pcInputStreams,
[out] DWORD *pcOutputStreams
);
HRESULT GetInputStreamInfo(
DWORD dwInputStreamIndex, // 0-based
[out] DWORD *pdwFlags // HOLDS_BUFFERS
);
HRESULT GetOutputStreamInfo(
DWORD dwOutputStreamIndex, // 0-based
[out] DWORD *pdwFlags // Media object sets to 0
);
//
// Mediatypes
//
//
// GetType - iterate through media types supported by a stream.
// Returns S_FALSE if the type index is out of range ("no more types").
//
HRESULT GetInputType(
DWORD dwInputStreamIndex,
DWORD dwTypeIndex, // 0-based
[out] DMO_MEDIA_TYPE *pmt
);
HRESULT GetOutputType(
DWORD dwOutputStreamIndex,
DWORD dwTypeIndex, // 0-based
[out] DMO_MEDIA_TYPE *pmt
);
//
// SetType - tell the object the type of data it will work with.
//
HRESULT SetInputType(
DWORD dwInputStreamIndex,
[in] const DMO_MEDIA_TYPE *pmt,
DWORD dwFlags // test only
);
HRESULT SetOutputType(
DWORD dwOutputStreamIndex,
[in] const DMO_MEDIA_TYPE *pmt,
DWORD dwFlags // test only
);
//
// GetCurrentType - get the last mediatype supplied via SetType.
// Returns S_FALSE if SetType has not been called.
//
HRESULT GetInputCurrentType(
DWORD dwInputStreamIndex,
[out] DMO_MEDIA_TYPE *pmt
);
HRESULT GetOutputCurrentType(
DWORD dwOutputStreamIndex,
[out] DMO_MEDIA_TYPE *pmt
);
//
// SizeInfo
//
//
// GetSizeInfo - Get buffer size requirementes of a stream.
//
// If buffer size depends on the media type used, the object should
// base its response on the most recent media type set for this stream.
// If no mediatype has been set, the object may return an error.
//
HRESULT GetInputSizeInfo(
DWORD dwInputStreamIndex,
[out] DWORD *pcbSize, // size of input 'quantum'
[out] DWORD *pcbMaxLookahead, // max total bytes held
[out] DWORD *pcbAlignment // buffer alignment requirement
);
HRESULT GetOutputSizeInfo(
DWORD dwOutputStreamIndex,
[out] DWORD *pcbSize, // size of output 'quantum'
[out] DWORD *pcbAlignment // buffer alignment requirement
);
//
// Latency methods
//
HRESULT GetInputMaxLatency(
DWORD dwInputStreamIndex,
[out] REFERENCE_TIME *prtMaxLatency
);
HRESULT SetInputMaxLatency(
DWORD dwInputStreamIndex,
REFERENCE_TIME rtMaxLatency
);
//
// Streaming / state methods
//
//
// Flush() - discard any buffered data.
//
HRESULT Flush();
//
// Send a discontinuity to an input stream. The object will not
// accept any more data on this input stream until the discontinuity
// has been completely processed, which may involve multiple
// ProcessOutput() calls.
//
HRESULT Discontinuity(DWORD dwInputStreamIndex);
//
// If a streaming object needs to perform any time consuming
// initialization before it can stream data, it should do it inside
// AllocateStreamingResources() rather than during the first process
// call.
//
// This method is NOT guaranteed to be called before streaming
// starts. If it is not called, the object should perform any
// required initialization during a process call.
//
HRESULT AllocateStreamingResources();
// Free anything allocated in AllocateStreamingResources().
HRESULT FreeStreamingResources();
// GetInputStatus - the only flag defined right now is ACCEPT_DATA.
HRESULT GetInputStatus(
DWORD dwInputStreamIndex,
[out] DWORD *dwFlags // ACCEPT_DATA
);
//
// Pass one new buffer to an input stream
//
HRESULT ProcessInput(
DWORD dwInputStreamIndex,
IMediaBuffer *pBuffer, // must not be NULL
DWORD dwFlags, // DMO_INPUT_DATA_BUFFERF_XXX (syncpoint, etc.)
REFERENCE_TIME rtTimestamp, // valid if flag set
REFERENCE_TIME rtTimelength // valid if flag set
);
//
// ProcessOutput() - generate output for current input buffers
//
// Output stream specific status information is returned in the
// dwStatus member of each buffer wrapper structure.
//
HRESULT ProcessOutput(
DWORD dwFlags, // DMO_PROCESS_OUTPUT_FLAGS
DWORD cOutputBufferCount, // # returned by GetStreamCount()
[in,out,size_is(cOutputBufferCount)]
DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, // one per stream
[out] DWORD *pdwStatus // TBD, must be set to 0
);
// Locking - lock if bLock is TRUE, otherwise unlock
HRESULT Lock(LONG bLock);
};
//
// Interface returned by the DMO enumeration API
//
[
object,
uuid(2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f)
]
interface IEnumDMO : IUnknown {
HRESULT Next(
DWORD cItemsToFetch,
[out, size_is(cItemsToFetch), length_is(*pcItemsFetched)] CLSID *pCLSID,
[out, size_is(cItemsToFetch), length_is(*pcItemsFetched), string] WCHAR **Names,
[out] DWORD *pcItemsFetched
);
HRESULT Skip(
DWORD cItemsToSkip
);
HRESULT Reset(void);
HRESULT Clone(
[out] IEnumDMO **ppEnum
);
}
// Flags for IMediaObjectInPlace::Process
enum _DMO_INPLACE_PROCESS_FLAGS {
DMO_INPLACE_NORMAL = 0x00000000,
DMO_INPLACE_ZERO = 0x00000001
};
[
object,
uuid(651b9ad0-0fc7-4aa9-9538-d89931010741)
]
interface IMediaObjectInPlace : IUnknown {
// Proces - Given a buffer of size ulSize, put the output
// of the DMO into the same buffer.
HRESULT Process(
[in] ULONG ulSize,
[in,out,size_is(ulSize)] BYTE* pData,
[in] REFERENCE_TIME refTimeStart,
[in] DWORD dwFlags
);
// Create a copy of the In-Place Media Object. This allows
// for very fast initialization of a number of In-Place objects
// in a known state.
HRESULT Clone(
[out] IMediaObjectInPlace **ppMediaObject
);
// GetLatency - Returns a REFERENCE_TIME value
// (1 tick = 100ns) which corresponds to the latency time
// processing this effect will add to the graph. This assumes
// the effect cost per buffer is a constant.
HRESULT GetLatency(
[out] REFERENCE_TIME *pLatencyTime
);
}
// Quality control status flags
enum _DMO_QUALITY_STATUS_FLAGS {
DMO_QUALITY_STATUS_ENABLED = 0x00000001
};
[
object,
uuid(65abea96-cf36-453f-af8a-705e98f16260)
]
interface IDMOQualityControl : IUnknown {
HRESULT SetNow(
[in] REFERENCE_TIME rtNow
);
HRESULT SetStatus(
[in] DWORD dwFlags
);
HRESULT GetStatus(
[out] DWORD *pdwFlags
);
}
// Flags for IVideoOutputOptimizations
enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS {
DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x00000001
};
[
object,
uuid(be8f4f4e-5b16-4d29-b350-7f6b5d9298ac)
]
interface IDMOVideoOutputOptimizations : IUnknown {
HRESULT QueryOperationModePreferences (
ULONG ulOutputStreamIndex,
DWORD *pdwRequestedCapabilities
);
HRESULT SetOperationMode (
ULONG ulOutputStreamIndex,
DWORD dwEnabledFeatures
);
HRESULT GetCurrentOperationMode (
ULONG ulOutputStreamIndex,
DWORD *pdwEnabledFeatures
);
HRESULT GetCurrentSampleRequirements (
ULONG ulOutputStreamIndex,
DWORD *pdwRequestedFeatures
);
}

View File

@ -1,228 +0,0 @@
//------------------------------------------------------------------------------
// File: MedParam.idl
//
// Desc: Definition of the IMediaParams and associated interfaces. These
// interfaces are designed to allow communication of curve-following
// behaviors for parameters of objects which require dynamic changes
// to their parameters at run time. All changes are specified by
// timestamp and curve type to ensure the parameters can be set
// at sufficient accuracy with predictable behavior on subsequent
// playback of the same curves.
//
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "oaidl.idl";
import "ocidl.idl";
import "strmif.idl";
//------------------------------------------------------------------------------
// Define the semantic type to be used for each parameter. All values passed
// into this interface are 32-bit floats, but the interface can specify that
// the values must be integer, booleans, or enumerated types
//------------------------------------------------------------------------------
typedef float MP_DATA; // All data is 32-bit floats
typedef enum _MP_Type {
MPT_INT, // data is signed 23 bit integer (mantissa)
MPT_FLOAT, // data is 32bit IEEE float
MPT_BOOL, // data is true or false (using ANSI C++ definition)
MPT_ENUM, // data is a set (represented by consecutive integers)
MPT_MAX,
} MP_TYPE;
const MP_DATA MPBOOL_TRUE = 1.0; // Value of true
const MP_DATA MPBOOL_FALSE = 0.0; // Value of false
//------------------------------------------------------------------------------
// Define the types of curves which are supported
//------------------------------------------------------------------------------
typedef enum _MP_CURVE_TYPE {
MP_CURVE_JUMP = 0x0001, // No interpolation, just jump to next point
MP_CURVE_LINEAR = 0x0002, // Linear interpolation (y follows x from 0.0 to 1.0)
MP_CURVE_SQUARE = 0x0004, // y follow x^2 from 0.0 to 1.0
MP_CURVE_INVSQUARE = 0x0008, // y follows 1-(x^2) from 0.0 to 1.0
MP_CURVE_SINE = 0x0010, // y follows sin(x) from -pi/2 to pi/2
} MP_CURVE_TYPE;
//------------------------------------------------------------------------------
// Capability bits. Used by the object to specify what capabilities it has.
//------------------------------------------------------------------------------
typedef DWORD MP_CAPS;
// Curve capabilities - If the cap bit is set, that type of curve is supported
const MP_CAPS MP_CAPS_CURVE_JUMP = MP_CURVE_JUMP;
const MP_CAPS MP_CAPS_CURVE_LINEAR = MP_CURVE_LINEAR;
const MP_CAPS MP_CAPS_CURVE_SQUARE = MP_CURVE_SQUARE;
const MP_CAPS MP_CAPS_CURVE_INVSQUARE = MP_CURVE_INVSQUARE;
const MP_CAPS MP_CAPS_CURVE_SINE = MP_CURVE_SINE;
//------------------------------------------------------------------------------
// Structure used to return information about the type and limits of a parameter
//------------------------------------------------------------------------------
typedef struct _MP_PARAMINFO {
MP_TYPE mpType; // One of MP_TYPE_xxx codes
MP_CAPS mopCaps; // A collection of MP_CAPS flags
// Minimum and maximum values
MP_DATA mpdMinValue; // minimum legal value
MP_DATA mpdMaxValue; // maximum legal value
MP_DATA mpdNeutralValue; // default or 'center' value
// Defualt Unit and Label text. These strings will ALWAYS be English
// strings in the UNICODE character set. For international text
// use the GetParamText member function
WCHAR szUnitText[32]; // units of the parameter
WCHAR szLabel[32]; // name of the parameter
} MP_PARAMINFO;
//------------------------------------------------------------------------------
// Parameter Index types
//------------------------------------------------------------------------------
typedef DWORD DWORD;
const DWORD DWORD_ALLPARAMS = -1; // Apply this operation to all params
//------------------------------------------------------------------------------
// Defined list of timestamp types
//------------------------------------------------------------------------------
typedef DWORD MP_TIMEDATA; // Extra data to further define type
// REFERENCE_TIME (1 tick = 100 nanoseconds, MP_TIMEDATA ignored)
cpp_quote("DEFINE_GUID(GUID_TIME_REFERENCE,")
cpp_quote("0x93ad712b, 0xdaa0, 0x4ffe, 0xbc, 0x81, 0xb0, 0xce, 0x50, 0xf, 0xcd, 0xd9);")
// Music Time (MP_TIMEDATA = parts/quarter note)
cpp_quote("DEFINE_GUID(GUID_TIME_MUSIC,")
cpp_quote("0x574c49d, 0x5b04, 0x4b15, 0xa5, 0x42, 0xae, 0x28, 0x20, 0x30, 0x11, 0x7b);")
// Time is measures in samples. MP_TIMEDATA = Samples/sec)
cpp_quote("DEFINE_GUID(GUID_TIME_SAMPLES,")
cpp_quote("0xa8593d05, 0xc43, 0x4984, 0x9a, 0x63, 0x97, 0xaf, 0x9e, 0x2, 0xc4, 0xc0);")
//------------------------------------------------------------------------------
// The value of a given parameter at a specific point in time
//------------------------------------------------------------------------------
typedef DWORD MP_FLAGS;
const MP_FLAGS MPF_ENVLP_STANDARD = 0x0000; // Use all data provided
const MP_FLAGS MPF_ENVLP_BEGIN_CURRENTVAL = 0x0001;
// Ignore valStart value, use current value as the staring point
const MP_FLAGS MPF_ENVLP_BEGIN_NEUTRALVAL = 0x0002;
// Ignore valStart value, use neutral value as the staring point
typedef struct _MP_ENVELOPE_SEGMENT {
REFERENCE_TIME rtStart; // Start time in current time format
REFERENCE_TIME rtEnd; // End time in current time format
MP_DATA valStart; // Initial Value
MP_DATA valEnd; // Final Value
MP_CURVE_TYPE iCurve; // One of MP_CURVE_TYPE codes
MP_FLAGS flags; // Special cases
} MP_ENVELOPE_SEGMENT;
//------------------------------------------------------------------------------
// Define flags for Punch-in timing
//------------------------------------------------------------------------------
const MP_FLAGS MPF_PUNCHIN_REFTIME = 0; // Use the reference time as the PI time
const MP_FLAGS MPF_PUNCHIN_NOW = 0x0001; // Punch in at the current clock time
const MP_FLAGS MPF_PUNCHIN_STOPPED = 0x0002; // Return change notifications during
// author time
//------------------------------------------------------------------------------
// IMediaParamInfo - Interface used to determine the names, data types and
// units of the parameters which are exposed by the object. This interface
// is used at discovery time, and is not required during run-time since the
// objects parameters are a fixed set and this data can be cached by the
// calling applicaiton.
//------------------------------------------------------------------------------
[
object,
uuid(6d6cbb60-a223-44aa-842f-a2f06750be6d),
version(1.0)
]
interface IMediaParamInfo : IUnknown
{
HRESULT GetParamCount (
[out] DWORD * pdwParams
);
HRESULT GetParamInfo (
[in] DWORD dwParamIndex,
[out] MP_PARAMINFO * pInfo
);
// returns a series of null terminated strings. strings are in the
// following order:
// Param Label, Units Text, 1st Enum Text, 2nd Enum Text, etc...
HRESULT GetParamText (
[in] DWORD dwParamIndex, // which param to get text for
[out] WCHAR **ppwchText // returns ptr to CoTaskMemAlloc'd string
);
// Returns the number of diffrent time formats this object understands
HRESULT GetNumTimeFormats (
[out] DWORD * pdwNumTimeFormats
);
// Returns the GUID for the ith supported time format
HRESULT GetSupportedTimeFormat(
[in] DWORD dwFormatIndex,
[out] GUID *pguidTimeFormat
);
// Returns the current time format
HRESULT GetCurrentTimeFormat (
[out] GUID *pguidTimeFormat,
[out] MP_TIMEDATA *pTimeData
);
}
//------------------------------------------------------------------------------
// IMediaParams - Interfaes used to actually set the media params and the
// envelopes to follow
//------------------------------------------------------------------------------
[
object,
uuid(6d6cbb61-a223-44aa-842f-a2f06750be6e),
version(1.0)
]
interface IMediaParams : IUnknown
{
// Single param Get/Set methods
HRESULT GetParam (
[in] DWORD dwParamIndex,
[out] MP_DATA *pValue
);
HRESULT SetParam (
[in] DWORD dwParamIndex,
[in] MP_DATA value
);
// Envelope methods (param change over time)
HRESULT AddEnvelope (
[in] DWORD dwParamIndex,
[in] DWORD cSegments,
[in] MP_ENVELOPE_SEGMENT * pEnvelopeSegments
);
// Flush all of the envelope information for the given paramter between
// the timestamps specified
HRESULT FlushEnvelope (
[in] DWORD dwParamIndex,
[in] REFERENCE_TIME refTimeStart,
[in] REFERENCE_TIME refTimeEnd
);
// Change the time format being used by the object
HRESULT SetTimeFormat (
[in] GUID guidTimeFormat,
[in] MP_TIMEDATA mpTimeData
);
}

View File

@ -1,190 +0,0 @@
//------------------------------------------------------------------------------
// File: MMStream.idl
//
// Desc: MultiMedia streaming interface IDL file. Used by MIDL tool
// to generate mmstream.h.
//
// Copyright (c) 1998-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
import "unknwn.idl";
cpp_quote("#define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)")
cpp_quote("#define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x)")
cpp_quote("#define MS_S_PENDING MS_SUCCESS_CODE(1)")
cpp_quote("#define MS_S_NOUPDATE MS_SUCCESS_CODE(2)")
cpp_quote("#define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3)")
cpp_quote("#define MS_E_SAMPLEALLOC MS_ERROR_CODE(1)")
cpp_quote("#define MS_E_PURPOSEID MS_ERROR_CODE(2)")
cpp_quote("#define MS_E_NOSTREAM MS_ERROR_CODE(3)")
cpp_quote("#define MS_E_NOSEEKING MS_ERROR_CODE(4)")
cpp_quote("#define MS_E_INCOMPATIBLE MS_ERROR_CODE(5)")
cpp_quote("#define MS_E_BUSY MS_ERROR_CODE(6)")
cpp_quote("#define MS_E_NOTINIT MS_ERROR_CODE(7)")
cpp_quote("#define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8)")
cpp_quote("#define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9)")
cpp_quote("#define MS_E_NOTRUNNING MS_ERROR_CODE(10)")
cpp_quote("// {A35FF56A-9FDA-11d0-8FDF-00C04FD9189D}")
cpp_quote("DEFINE_GUID(MSPID_PrimaryVideo, ")
cpp_quote("0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
cpp_quote("// {A35FF56B-9FDA-11d0-8FDF-00C04FD9189D}")
cpp_quote("DEFINE_GUID(MSPID_PrimaryAudio,")
cpp_quote("0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
cpp_quote("#if(_WIN32_WINNT < 0x0400)")
typedef void (__stdcall * PAPCFUNC)(DWORD_PTR dwParam);
cpp_quote("#endif")
typedef LONGLONG STREAM_TIME;
typedef GUID MSPID;
typedef REFGUID REFMSPID;
typedef enum {
STREAMTYPE_READ = 0,
STREAMTYPE_WRITE = 1,
STREAMTYPE_TRANSFORM= 2
} STREAM_TYPE;
typedef enum {
STREAMSTATE_STOP = 0,
STREAMSTATE_RUN = 1
} STREAM_STATE;
typedef enum {
COMPSTAT_NOUPDATEOK = 0x00000001,
COMPSTAT_WAIT = 0x00000002,
COMPSTAT_ABORT = 0x00000004
} COMPLETION_STATUS_FLAGS;
// Flags for GetInformation
enum {
MMSSF_HASCLOCK = 0x00000001,
MMSSF_SUPPORTSEEK = 0x00000002,
MMSSF_ASYNCHRONOUS = 0x00000004
};
// Flags for StreamSample::Update
enum {
SSUPDATE_ASYNC = 0x00000001,
SSUPDATE_CONTINUOUS = 0x00000002
};
interface IMultiMediaStream;
interface IMediaStream;
interface IStreamSample;
// IMultiMediaStream interface
[
object,
local,
uuid(B502D1BC-9A57-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IMultiMediaStream : IUnknown {
HRESULT GetInformation(
[out] DWORD *pdwFlags,
[out] STREAM_TYPE *pStreamType);
HRESULT GetMediaStream(
[in] REFMSPID idPurpose,
[out] IMediaStream **ppMediaStream);
HRESULT EnumMediaStreams(
[in] long Index,
[out] IMediaStream **ppMediaStream);
HRESULT GetState(
[out] STREAM_STATE *pCurrentState);
HRESULT SetState(
[in] STREAM_STATE NewState);
HRESULT GetTime(
[out] STREAM_TIME *pCurrentTime);
HRESULT GetDuration(
[out] STREAM_TIME *pDuration);
HRESULT Seek(
[in] STREAM_TIME SeekTime);
HRESULT GetEndOfStreamEventHandle(
[out] HANDLE *phEOS);
};
// IMediaStream interface
[
object,
uuid(B502D1BD-9A57-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IMediaStream : IUnknown {
HRESULT GetMultiMediaStream(
[out] IMultiMediaStream **ppMultiMediaStream);
HRESULT GetInformation(
[out] MSPID *pPurposeId,
[out] STREAM_TYPE *pType);
HRESULT SetSameFormat(
[in] IMediaStream *pStreamThatHasDesiredFormat,
[in] DWORD dwFlags);
HRESULT AllocateSample(
[in] DWORD dwFlags,
[out] IStreamSample **ppSample);
HRESULT CreateSharedSample(
[in] IStreamSample *pExistingSample,
[in] DWORD dwFlags,
[out] IStreamSample **ppNewSample);
HRESULT SendEndOfStream(DWORD dwFlags);
};
// IStreamSample interface
[
object,
local,
uuid(B502D1BE-9A57-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IStreamSample : IUnknown {
HRESULT GetMediaStream(
[in] IMediaStream **ppMediaStream);
HRESULT GetSampleTimes(
[out] STREAM_TIME * pStartTime,
[out] STREAM_TIME * pEndTime,
[out] STREAM_TIME * pCurrentTime);
HRESULT SetSampleTimes(
[in] const STREAM_TIME *pStartTime,
[in] const STREAM_TIME *pEndTime);
HRESULT Update(
[in] DWORD dwFlags,
[in] HANDLE hEvent,
[in] PAPCFUNC pfnAPC,
[in] DWORD_PTR dwAPCData);
HRESULT CompletionStatus(
[in] DWORD dwFlags,
[in] DWORD dwMilliseconds);
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,52 +0,0 @@
//------------------------------------------------------------------------------
// File: RegBag.idl
//
// Desc: IDL source for RegBag.dll.
//
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2001.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("#pragma once")
#ifndef DO_NO_IMPORTS
import "objidl.idl";
import "oaidl.idl";
import "ocidl.idl";
#endif
//*****************************************************************************
///////////////////////////////////////////////////////////////////////////////
//
// Custom Factory interface
// since com doesn't support ctors or initialization parameters on std factory interface
// we have a custom creation interface
//
///////////////////////////////////////////////////////////////////////////////
//*****************************************************************************
///////////////////////////////////////////////////////////////////////////////////////
[object,
hidden, restricted,
uuid(8A674B48-1F63-11d3-B64C-00C04F79498E),
helpstring("Create property bag backed by registry"),
pointer_default(unique),
local
]
interface ICreatePropBagOnRegKey : IUnknown {
// NOTE: it is up to the caller to set the correct registry access based on the interface
// and methods the caller intends to use
// IPropertyBag2::GetPropertyInfo and CountProperties require both KEY_QUERY_VALUE and KEY_ENUMERATE_SUBKEYS
// IPropertyBagXXX::Read requires KEY_READ
// IPropertyBagXXX::Write requires KEY_WRITE
// also, you must CoTaskMemFree the name string from GetPropertyInfo
// if you write a value of VT_EMPTY or VT_NULL the property will be removed from the bag and the corresponding
// registry info will be deleted.
HRESULT Create([in] HKEY hkey, [in] LPCOLESTR subkey, [in] DWORD ulOptions, [in] DWORD samDesired, REFIID iid, [out] LPVOID *ppBag);
};

View File

@ -1,56 +0,0 @@
//------------------------------------------------------------------------------
// File: StrmIf.idl
//
// Desc: ActiveMovie interface definitions.
//
// Copyright (c) 1992-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
//
// Temporarily disable the /W4 compiler warning C4201, which will be
// reported by all apps which include streams.h or dshow.h, which both
// include the strmif.h generated by this IDL file.
//
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2001.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("// Disable /W4 compiler warning C4201: nameless struct/union")
cpp_quote("#pragma warning(disable:4201) // Disable C4201: nameless struct/union")
cpp_quote(" ") // Blank space
import "unknwn.idl";
import "objidl.idl"; // for IPersist (IFilter's root)
#include "devenum.idl"
// Core interfaces
#include "axcore.idl"
// Extended, ActiveMovie-only interfaces
#include "axextend.idl"
#if (WINVER < 0x501)
#include "IAMovie.idl"
#endif
// Application interfaces for DVD
#include "dvdif.idl"
// Dynamic graph stuff
#include "dyngraph.idl"
// This include is only valid when building for Windows XP
#if (WINVER >= 0x501)
// Video Mixing Renderer
#include "VMRender.idl"
#endif
//
// Restore the previous setting for C4201 compiler warning
//
cpp_quote("// Restore the previous setting for C4201 compiler warning")
cpp_quote("#pragma warning(default:4201)")

File diff suppressed because it is too large Load Diff

View File

@ -1,117 +0,0 @@
//------------------------------------------------------------------------------
// File: iwstdec.h
//
// Desc: WST Decoder related definitions and interfaces for ActiveMovie
//
// Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
//
#ifndef __IWSTDEC__
#define __IWSTDEC__
//
// Some data types used as WST decoder parameters by the interface
//
typedef struct _AM_WST_PAGE {
DWORD dwPageNr ;
DWORD dwSubPageNr ;
BYTE *pucPageData;
} AM_WST_PAGE, *PAM_WST_PAGE ;
typedef enum _AM_WST_LEVEL {
AM_WST_LEVEL_1_5 = 0
} AM_WST_LEVEL, *PAM_WST_LEVEL ;
typedef enum _AM_WST_SERVICE {
AM_WST_SERVICE_None = 0,
AM_WST_SERVICE_Text,
AM_WST_SERVICE_IDS,
AM_WST_SERVICE_Invalid
} AM_WST_SERVICE, *PAM_WST_SERVICE ;
typedef enum _AM_WST_STATE {
AM_WST_STATE_Off = 0,
AM_WST_STATE_On
} AM_WST_STATE, *PAM_WST_STATE ;
typedef enum _AM_WST_STYLE {
AM_WST_STYLE_None = 0,
AM_WST_STYLE_Invers
} AM_WST_STYLE, *PAM_WST_STYLE ;
typedef enum _AM_WST_DRAWBGMODE {
AM_WST_DRAWBGMODE_Opaque,
AM_WST_DRAWBGMODE_Transparent
} AM_WST_DRAWBGMODE, *PAM_WST_DRAWBGMODE ;
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
//
// WST Decoder standard COM interface
//
DECLARE_INTERFACE_(IAMWstDecoder, IUnknown)
{
public:
//
// Decoder options to be used by apps
//
// What is the decoder's level
STDMETHOD(GetDecoderLevel)(THIS_ AM_WST_LEVEL *lpLevel) PURE ;
// STDMETHOD(SetDecoderLevel)(THIS_ AM_WST_LEVEL Level) PURE ;
// Which of the services is being currently used
STDMETHOD(GetCurrentService)(THIS_ AM_WST_SERVICE *lpService) PURE ;
// STDMETHOD(SetCurrentService)(THIS_ AM_WST_SERVICE Service) PURE ;
// Query/Set the service state (On/Off)
// supported state values are AM_WSTState_On and AM_WSTState_Off
STDMETHOD(GetServiceState)(THIS_ AM_WST_STATE *lpState) PURE ;
STDMETHOD(SetServiceState)(THIS_ AM_WST_STATE State) PURE ;
//
// Output options to be used by downstream filters
//
// What size, bitdepth etc should the output video be
STDMETHOD(GetOutputFormat)(THIS_ LPBITMAPINFOHEADER lpbmih) PURE ;
// GetOutputFormat() method, if successful, returns
// 1. S_FALSE if no output format has so far been defined by downstream filters
// 2. S_OK if an output format has already been defined by downstream filters
STDMETHOD(SetOutputFormat)(THIS_ LPBITMAPINFO lpbmi) PURE ;
// Specify physical color to be used in colorkeying the background
// for overlay mixing
STDMETHOD(GetBackgroundColor)(THIS_ DWORD *pdwPhysColor) PURE ;
STDMETHOD(SetBackgroundColor)(THIS_ DWORD dwPhysColor) PURE ;
// Specify if whole output bitmap should be redrawn for each sample
STDMETHOD(GetRedrawAlways)(THIS_ LPBOOL lpbOption) PURE ;
STDMETHOD(SetRedrawAlways)(THIS_ BOOL bOption) PURE ;
// Specify if the caption text background should be opaque/transparent
STDMETHOD(GetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE *lpMode) PURE ;
STDMETHOD(SetDrawBackgroundMode)(THIS_ AM_WST_DRAWBGMODE Mode) PURE ;
// supported mode values are AM_WST_DrawBGMode_Opaque and
// AM_WST_DrawBGMode_Transparent
STDMETHOD(SetAnswerMode)(THIS_ BOOL bAnswer) PURE ;
STDMETHOD(GetAnswerMode)(THIS_ BOOL* pbAnswer) PURE ;
STDMETHOD(SetHoldPage)(THIS_ BOOL bHoldPage) PURE ;
STDMETHOD(GetHoldPage)(THIS_ BOOL* pbHoldPage) PURE ;
STDMETHOD(GetCurrentPage)(THIS_ PAM_WST_PAGE pWstPage) PURE;
STDMETHOD(SetCurrentPage)(THIS_ AM_WST_PAGE WstPage) PURE;
} ;
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // __IWSTDEC__

8373
extern/include/Mstvca.h vendored

File diff suppressed because it is too large Load Diff

13130
extern/include/Mstve.h vendored

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More