Changeset 266 for trunk/DirectShowSpy


Ignore:
Timestamp:
Feb 2, 2014, 1:58:46 AM (10 years ago)
Author:
roman
Message:

Added server side conversion of IPropertyBag2 into VARIANT for traveling across process boundary; added automatic property bags for stock video/audio renderer interfaces

Location:
trunk/DirectShowSpy
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/DirectShowSpy/DirectShowSpy.idl

    r265 r266  
    2525        [id(6)] HRESULT OpenGraphStudioNext([in] LONG nParentWindowHandle, [out, retval] VARIANT_BOOL* pbResult);
    2626        [id(7)] HRESULT OpenGraphEdit([in] LONG nParentWindowHandle, [out, retval] VARIANT_BOOL* pbResult);
     27        [id(8)] HRESULT ReadRunPropertyBag([in] IUnknown* pBaseFilterUnknown, [in] VARIANT_BOOL bAllowExtension, [out, retval] VARIANT* pvValue);
    2728};
    2829[
     
    169170        {
    170171                [propget, id(DISPID_VALUE)] HRESULT Value([out, retval] IUnknown** ppPropertyBagUnknown);
     172                [propget, id(1)] HRESULT Spy([out, retval] ISpy** ppSpy);
    171173        };
    172174        [
  • trunk/DirectShowSpy/DirectShowSpy.rc

    r265 r266  
    6060
    6161VS_VERSION_INFO VERSIONINFO
    62  FILEVERSION  1, 0, 0, 1377
     62 FILEVERSION  1, 0, 0, 1405
    6363 PRODUCTVERSION 1,0,0,1
    6464 FILEFLAGSMASK 0x3fL
     
    7979            VALUE "CompanyName", "Roman Ryltsov"
    8080            VALUE "FileDescription", "Alax.Info DirectShow Spy Module"
    81             VALUE "FileVersion",  "1, 0, 0, 1377\0"
     81            VALUE "FileVersion",  "1, 0, 0, 1405\0"
    8282            VALUE "InternalName", "DirectShowSpy.dll"
    8383            VALUE "LegalCopyright", "Copyright © Alax.Info, Roman Ryltsov, 2008-2014"
  • trunk/DirectShowSpy/DirectShowSpy.vcxproj

    r265 r266  
    473473    <ClInclude Include="FilterMapperSpy.h" />
    474474    <ClInclude Include="GraphBuilderCallbackPropertySheet.h" />
     475    <ClInclude Include="PropertyBag.h" />
    475476    <ClInclude Include="Resource.h" />
    476477    <ClInclude Include="stdafx.h" />
  • trunk/DirectShowSpy/DirectShowSpy.vcxproj.filters

    r265 r266  
    113113      <Filter>Header Files</Filter>
    114114    </ClInclude>
     115    <ClInclude Include="PropertyBag.h">
     116      <Filter>Header Files</Filter>
     117    </ClInclude>
    115118  </ItemGroup>
    116119  <ItemGroup>
  • trunk/DirectShowSpy/DirectShowSpy_i.c

    r265 r266  
    77
    88 /* File created by MIDL compiler version 7.00.0555 */
    9 /* at Sat Feb 01 17:41:18 2014
     9/* at Sun Feb 02 11:24:37 2014
    1010 */
    1111/* Compiler settings for DirectShowSpy.idl:
  • trunk/DirectShowSpy/DirectShowSpy_i.h

    r265 r266  
    55
    66 /* File created by MIDL compiler version 7.00.0555 */
    7 /* at Sat Feb 01 17:41:18 2014
     7/* at Sun Feb 02 11:24:37 2014
    88 */
    99/* Compiler settings for DirectShowSpy.idl:
     
    216216            /* [retval][out] */ VARIANT_BOOL *pbResult) = 0;
    217217       
     218        virtual /* [id] */ HRESULT STDMETHODCALLTYPE ReadRunPropertyBag(
     219            /* [in] */ IUnknown *pBaseFilterUnknown,
     220            /* [in] */ VARIANT_BOOL bAllowExtension,
     221            /* [retval][out] */ VARIANT *pvValue) = 0;
     222       
    218223    };
    219224   
     
    299304            /* [retval][out] */ VARIANT_BOOL *pbResult);
    300305       
     306        /* [id] */ HRESULT ( STDMETHODCALLTYPE *ReadRunPropertyBag )(
     307            ISpy * This,
     308            /* [in] */ IUnknown *pBaseFilterUnknown,
     309            /* [in] */ VARIANT_BOOL bAllowExtension,
     310            /* [retval][out] */ VARIANT *pvValue);
     311       
    301312        END_INTERFACE
    302313    } ISpyVtbl;
     
    358369#define ISpy_OpenGraphEdit(This,nParentWindowHandle,pbResult)   \
    359370    ( (This)->lpVtbl -> OpenGraphEdit(This,nParentWindowHandle,pbResult) )
     371
     372#define ISpy_ReadRunPropertyBag(This,pBaseFilterUnknown,bAllowExtension,pvValue)        \
     373    ( (This)->lpVtbl -> ReadRunPropertyBag(This,pBaseFilterUnknown,bAllowExtension,pvValue) )
    360374
    361375#endif /* COBJMACROS */
     
    12381252            /* [retval][out] */ IUnknown **ppPropertyBagUnknown) = 0;
    12391253       
     1254        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Spy(
     1255            /* [retval][out] */ ISpy **ppSpy) = 0;
     1256       
    12401257    };
    12411258   
     
    12911308            /* [retval][out] */ IUnknown **ppPropertyBagUnknown);
    12921309       
     1310        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Spy )(
     1311            IRunPropertyBagAware * This,
     1312            /* [retval][out] */ ISpy **ppSpy);
     1313       
    12931314        END_INTERFACE
    12941315    } IRunPropertyBagAwareVtbl;
     
    13291350#define IRunPropertyBagAware_get_Value(This,ppPropertyBagUnknown)       \
    13301351    ( (This)->lpVtbl -> get_Value(This,ppPropertyBagUnknown) )
     1352
     1353#define IRunPropertyBagAware_get_Spy(This,ppSpy)        \
     1354    ( (This)->lpVtbl -> get_Spy(This,ppSpy) )
    13311355
    13321356#endif /* COBJMACROS */
     
    13571381void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * );
    13581382
     1383unsigned long             __RPC_USER  VARIANT_UserSize(     unsigned long *, unsigned long            , VARIANT * );
     1384unsigned char * __RPC_USER  VARIANT_UserMarshal(  unsigned long *, unsigned char *, VARIANT * );
     1385unsigned char * __RPC_USER  VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
     1386void                      __RPC_USER  VARIANT_UserFree(     unsigned long *, VARIANT * );
     1387
    13591388/* end of Additional Prototypes */
    13601389
  • trunk/DirectShowSpy/DirectShowSpy_p.c

    r265 r266  
    55
    66 /* File created by MIDL compiler version 7.00.0555 */
    7 /* at Sat Feb 01 17:41:18 2014
     7/* at Sun Feb 02 11:24:37 2014
    88 */
    99/* Compiler settings for DirectShowSpy.idl:
     
    5050#include "DirectShowSpy_i.h"
    5151
    52 #define TYPE_FORMAT_STRING_SIZE   87                               
    53 #define PROC_FORMAT_STRING_SIZE   505                               
     52#define TYPE_FORMAT_STRING_SIZE   1079                             
     53#define PROC_FORMAT_STRING_SIZE   553                               
    5454#define EXPR_FORMAT_STRING_SIZE   1                                 
    5555#define TRANSMIT_AS_TABLE_SIZE    0           
    56 #define WIRE_MARSHAL_TABLE_SIZE   1           
     56#define WIRE_MARSHAL_TABLE_SIZE   2           
    5757
    5858typedef struct _DirectShowSpy_MIDL_TYPE_FORMAT_STRING
     
    408408                        0x0,            /* 0 */
    409409
    410         /* Procedure get_FilterGraph */
     410        /* Procedure ReadRunPropertyBag */
    411411
    412412/* 300 */       0x33,           /* FC_AUTO_HANDLE */
    413413                        0x6c,           /* Old Flags:  object, Oi2 */
    414414/* 302 */       NdrFcLong( 0x0 ),       /* 0 */
    415 /* 306 */       NdrFcShort( 0x7 ),      /* 7 */
    416 /* 308 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
    417 /* 310 */       NdrFcShort( 0x0 ),      /* 0 */
     415/* 306 */       NdrFcShort( 0xf ),      /* 15 */
     416/* 308 */       NdrFcShort( 0x14 ),     /* x86 Stack size/offset = 20 */
     417/* 310 */       NdrFcShort( 0x6 ),      /* 6 */
    418418/* 312 */       NdrFcShort( 0x8 ),      /* 8 */
    419 /* 314 */       0x45,           /* Oi2 Flags:  srv must size, has return, has ext, */
    420                         0x2,            /* 2 */
     419/* 314 */       0x47,           /* Oi2 Flags:  srv must size, clt must size, has return, has ext, */
     420                        0x4,            /* 4 */
    421421/* 316 */       0x8,            /* 8 */
    422                         0x1,            /* Ext Flags:  new corr desc, */
    423 /* 318 */       NdrFcShort( 0x0 ),      /* 0 */
     422                        0x3,            /* Ext Flags:  new corr desc, clt corr check, */
     423/* 318 */       NdrFcShort( 0x1 ),      /* 1 */
    424424/* 320 */       NdrFcShort( 0x0 ),      /* 0 */
    425425/* 322 */       NdrFcShort( 0x0 ),      /* 0 */
    426426
    427         /* Parameter ppFilterGraphUnknown */
    428 
    429 /* 324 */       NdrFcShort( 0x13 ),     /* Flags:  must size, must free, out, */
     427        /* Parameter pBaseFilterUnknown */
     428
     429/* 324 */       NdrFcShort( 0xb ),      /* Flags:  must size, must free, in, */
    430430/* 326 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
    431431/* 328 */       NdrFcShort( 0x40 ),     /* Type Offset=64 */
    432432
     433        /* Parameter bAllowExtension */
     434
     435/* 330 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
     436/* 332 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     437/* 334 */       0x6,            /* FC_SHORT */
     438                        0x0,            /* 0 */
     439
     440        /* Parameter pvValue */
     441
     442/* 336 */       NdrFcShort( 0x4113 ),   /* Flags:  must size, must free, out, simple ref, srv alloc size=16 */
     443/* 338 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     444/* 340 */       NdrFcShort( 0x428 ),    /* Type Offset=1064 */
     445
    433446        /* Return value */
    434447
    435 /* 330 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
    436 /* 332 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
    437 /* 334 */       0x8,            /* FC_LONG */
     448/* 342 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     449/* 344 */       NdrFcShort( 0x10 ),     /* x86 Stack size/offset = 16 */
     450/* 346 */       0x8,            /* FC_LONG */
     451                        0x0,            /* 0 */
     452
     453        /* Procedure get_FilterGraph */
     454
     455/* 348 */       0x33,           /* FC_AUTO_HANDLE */
     456                        0x6c,           /* Old Flags:  object, Oi2 */
     457/* 350 */       NdrFcLong( 0x0 ),       /* 0 */
     458/* 354 */       NdrFcShort( 0x7 ),      /* 7 */
     459/* 356 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     460/* 358 */       NdrFcShort( 0x0 ),      /* 0 */
     461/* 360 */       NdrFcShort( 0x8 ),      /* 8 */
     462/* 362 */       0x45,           /* Oi2 Flags:  srv must size, has return, has ext, */
     463                        0x2,            /* 2 */
     464/* 364 */       0x8,            /* 8 */
     465                        0x1,            /* Ext Flags:  new corr desc, */
     466/* 366 */       NdrFcShort( 0x0 ),      /* 0 */
     467/* 368 */       NdrFcShort( 0x0 ),      /* 0 */
     468/* 370 */       NdrFcShort( 0x0 ),      /* 0 */
     469
     470        /* Parameter ppFilterGraphUnknown */
     471
     472/* 372 */       NdrFcShort( 0x13 ),     /* Flags:  must size, must free, out, */
     473/* 374 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     474/* 376 */       NdrFcShort( 0x432 ),    /* Type Offset=1074 */
     475
     476        /* Return value */
     477
     478/* 378 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     479/* 380 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     480/* 382 */       0x8,            /* FC_LONG */
    438481                        0x0,            /* 0 */
    439482
    440483        /* Procedure put_FilterGraph */
    441484
    442 /* 336 */       0x33,           /* FC_AUTO_HANDLE */
     485/* 384 */       0x33,           /* FC_AUTO_HANDLE */
    443486                        0x6c,           /* Old Flags:  object, Oi2 */
    444 /* 338 */       NdrFcLong( 0x0 ),       /* 0 */
    445 /* 342 */       NdrFcShort( 0x8 ),      /* 8 */
    446 /* 344 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
    447 /* 346 */       NdrFcShort( 0x0 ),      /* 0 */
    448 /* 348 */       NdrFcShort( 0x8 ),      /* 8 */
    449 /* 350 */       0x46,           /* Oi2 Flags:  clt must size, has return, has ext, */
     487/* 386 */       NdrFcLong( 0x0 ),       /* 0 */
     488/* 390 */       NdrFcShort( 0x8 ),      /* 8 */
     489/* 392 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     490/* 394 */       NdrFcShort( 0x0 ),      /* 0 */
     491/* 396 */       NdrFcShort( 0x8 ),      /* 8 */
     492/* 398 */       0x46,           /* Oi2 Flags:  clt must size, has return, has ext, */
    450493                        0x2,            /* 2 */
    451 /* 352 */       0x8,            /* 8 */
     494/* 400 */       0x8,            /* 8 */
    452495                        0x1,            /* Ext Flags:  new corr desc, */
    453 /* 354 */       NdrFcShort( 0x0 ),      /* 0 */
    454 /* 356 */       NdrFcShort( 0x0 ),      /* 0 */
    455 /* 358 */       NdrFcShort( 0x0 ),      /* 0 */
     496/* 402 */       NdrFcShort( 0x0 ),      /* 0 */
     497/* 404 */       NdrFcShort( 0x0 ),      /* 0 */
     498/* 406 */       NdrFcShort( 0x0 ),      /* 0 */
    456499
    457500        /* Parameter pFilterGraphUnknown */
    458501
    459 /* 360 */       NdrFcShort( 0xb ),      /* Flags:  must size, must free, in, */
    460 /* 362 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
    461 /* 364 */       NdrFcShort( 0x44 ),     /* Type Offset=68 */
     502/* 408 */       NdrFcShort( 0xb ),      /* Flags:  must size, must free, in, */
     503/* 410 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     504/* 412 */       NdrFcShort( 0x40 ),     /* Type Offset=64 */
    462505
    463506        /* Return value */
    464507
    465 /* 366 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
    466 /* 368 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
    467 /* 370 */       0x8,            /* FC_LONG */
     508/* 414 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     509/* 416 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     510/* 418 */       0x8,            /* FC_LONG */
    468511                        0x0,            /* 0 */
    469512
    470513        /* Procedure DoPropertyFrameModal */
    471514
    472 /* 372 */       0x33,           /* FC_AUTO_HANDLE */
     515/* 420 */       0x33,           /* FC_AUTO_HANDLE */
    473516                        0x6c,           /* Old Flags:  object, Oi2 */
    474 /* 374 */       NdrFcLong( 0x0 ),       /* 0 */
    475 /* 378 */       NdrFcShort( 0xa ),      /* 10 */
    476 /* 380 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
    477 /* 382 */       NdrFcShort( 0x8 ),      /* 8 */
    478 /* 384 */       NdrFcShort( 0x8 ),      /* 8 */
    479 /* 386 */       0x44,           /* Oi2 Flags:  has return, has ext, */
     517/* 422 */       NdrFcLong( 0x0 ),       /* 0 */
     518/* 426 */       NdrFcShort( 0xa ),      /* 10 */
     519/* 428 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     520/* 430 */       NdrFcShort( 0x8 ),      /* 8 */
     521/* 432 */       NdrFcShort( 0x8 ),      /* 8 */
     522/* 434 */       0x44,           /* Oi2 Flags:  has return, has ext, */
    480523                        0x2,            /* 2 */
    481 /* 388 */       0x8,            /* 8 */
     524/* 436 */       0x8,            /* 8 */
    482525                        0x1,            /* Ext Flags:  new corr desc, */
    483 /* 390 */       NdrFcShort( 0x0 ),      /* 0 */
    484 /* 392 */       NdrFcShort( 0x0 ),      /* 0 */
    485 /* 394 */       NdrFcShort( 0x0 ),      /* 0 */
     526/* 438 */       NdrFcShort( 0x0 ),      /* 0 */
     527/* 440 */       NdrFcShort( 0x0 ),      /* 0 */
     528/* 442 */       NdrFcShort( 0x0 ),      /* 0 */
    486529
    487530        /* Parameter nParentWindowHandle */
    488531
    489 /* 396 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
    490 /* 398 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
    491 /* 400 */       0x8,            /* FC_LONG */
     532/* 444 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
     533/* 446 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     534/* 448 */       0x8,            /* FC_LONG */
    492535                        0x0,            /* 0 */
    493536
    494537        /* Return value */
    495538
    496 /* 402 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
    497 /* 404 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
    498 /* 406 */       0x8,            /* FC_LONG */
     539/* 450 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     540/* 452 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     541/* 454 */       0x8,            /* FC_LONG */
    499542                        0x0,            /* 0 */
    500543
    501544        /* Procedure OpenGraphStudioNext */
    502 
    503 /* 408 */       0x33,           /* FC_AUTO_HANDLE */
    504                         0x6c,           /* Old Flags:  object, Oi2 */
    505 /* 410 */       NdrFcLong( 0x0 ),       /* 0 */
    506 /* 414 */       NdrFcShort( 0xc ),      /* 12 */
    507 /* 416 */       NdrFcShort( 0x14 ),     /* x86 Stack size/offset = 20 */
    508 /* 418 */       NdrFcShort( 0x8 ),      /* 8 */
    509 /* 420 */       NdrFcShort( 0x22 ),     /* 34 */
    510 /* 422 */       0x46,           /* Oi2 Flags:  clt must size, has return, has ext, */
    511                         0x4,            /* 4 */
    512 /* 424 */       0x8,            /* 8 */
    513                         0x5,            /* Ext Flags:  new corr desc, srv corr check, */
    514 /* 426 */       NdrFcShort( 0x0 ),      /* 0 */
    515 /* 428 */       NdrFcShort( 0x1 ),      /* 1 */
    516 /* 430 */       NdrFcShort( 0x0 ),      /* 0 */
    517 
    518         /* Parameter nParentWindowHandle */
    519 
    520 /* 432 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
    521 /* 434 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
    522 /* 436 */       0x8,            /* FC_LONG */
    523                         0x0,            /* 0 */
    524 
    525         /* Parameter sMonikerDisplayName */
    526 
    527 /* 438 */       NdrFcShort( 0x8b ),     /* Flags:  must size, must free, in, by val, */
    528 /* 440 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
    529 /* 442 */       NdrFcShort( 0x32 ),     /* Type Offset=50 */
    530 
    531         /* Parameter pbResult */
    532 
    533 /* 444 */       NdrFcShort( 0x2150 ),   /* Flags:  out, base type, simple ref, srv alloc size=8 */
    534 /* 446 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
    535 /* 448 */       0x6,            /* FC_SHORT */
    536                         0x0,            /* 0 */
    537 
    538         /* Return value */
    539 
    540 /* 450 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
    541 /* 452 */       NdrFcShort( 0x10 ),     /* x86 Stack size/offset = 16 */
    542 /* 454 */       0x8,            /* FC_LONG */
    543                         0x0,            /* 0 */
    544 
    545         /* Procedure OpenGraphEdit */
    546545
    547546/* 456 */       0x33,           /* FC_AUTO_HANDLE */
    548547                        0x6c,           /* Old Flags:  object, Oi2 */
    549548/* 458 */       NdrFcLong( 0x0 ),       /* 0 */
    550 /* 462 */       NdrFcShort( 0xd ),      /* 13 */
     549/* 462 */       NdrFcShort( 0xc ),      /* 12 */
    551550/* 464 */       NdrFcShort( 0x14 ),     /* x86 Stack size/offset = 20 */
    552551/* 466 */       NdrFcShort( 0x8 ),      /* 8 */
     
    585584/* 500 */       NdrFcShort( 0x10 ),     /* x86 Stack size/offset = 16 */
    586585/* 502 */       0x8,            /* FC_LONG */
     586                        0x0,            /* 0 */
     587
     588        /* Procedure OpenGraphEdit */
     589
     590/* 504 */       0x33,           /* FC_AUTO_HANDLE */
     591                        0x6c,           /* Old Flags:  object, Oi2 */
     592/* 506 */       NdrFcLong( 0x0 ),       /* 0 */
     593/* 510 */       NdrFcShort( 0xd ),      /* 13 */
     594/* 512 */       NdrFcShort( 0x14 ),     /* x86 Stack size/offset = 20 */
     595/* 514 */       NdrFcShort( 0x8 ),      /* 8 */
     596/* 516 */       NdrFcShort( 0x22 ),     /* 34 */
     597/* 518 */       0x46,           /* Oi2 Flags:  clt must size, has return, has ext, */
     598                        0x4,            /* 4 */
     599/* 520 */       0x8,            /* 8 */
     600                        0x5,            /* Ext Flags:  new corr desc, srv corr check, */
     601/* 522 */       NdrFcShort( 0x0 ),      /* 0 */
     602/* 524 */       NdrFcShort( 0x1 ),      /* 1 */
     603/* 526 */       NdrFcShort( 0x0 ),      /* 0 */
     604
     605        /* Parameter nParentWindowHandle */
     606
     607/* 528 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
     608/* 530 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     609/* 532 */       0x8,            /* FC_LONG */
     610                        0x0,            /* 0 */
     611
     612        /* Parameter sMonikerDisplayName */
     613
     614/* 534 */       NdrFcShort( 0x8b ),     /* Flags:  must size, must free, in, by val, */
     615/* 536 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     616/* 538 */       NdrFcShort( 0x32 ),     /* Type Offset=50 */
     617
     618        /* Parameter pbResult */
     619
     620/* 540 */       NdrFcShort( 0x2150 ),   /* Flags:  out, base type, simple ref, srv alloc size=8 */
     621/* 542 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     622/* 544 */       0x6,            /* FC_SHORT */
     623                        0x0,            /* 0 */
     624
     625        /* Return value */
     626
     627/* 546 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     628/* 548 */       NdrFcShort( 0x10 ),     /* x86 Stack size/offset = 16 */
     629/* 550 */       0x8,            /* FC_LONG */
    587630                        0x0,            /* 0 */
    588631
     
    645688                        0x5c,           /* FC_PAD */
    646689/* 64 */       
    647                         0x11, 0x10,     /* FC_RP [pointer_deref] */
    648 /* 66 */        NdrFcShort( 0x2 ),      /* Offset= 2 (68) */
    649 /* 68 */       
    650690                        0x2f,           /* FC_IP */
    651691                        0x5a,           /* FC_CONSTANT_IID */
    652 /* 70 */        NdrFcLong( 0x0 ),       /* 0 */
    653 /* 74 */        NdrFcShort( 0x0 ),      /* 0 */
    654 /* 76 */        NdrFcShort( 0x0 ),      /* 0 */
    655 /* 78 */        0xc0,           /* 192 */
     692/* 66 */        NdrFcLong( 0x0 ),       /* 0 */
     693/* 70 */        NdrFcShort( 0x0 ),      /* 0 */
     694/* 72 */        NdrFcShort( 0x0 ),      /* 0 */
     695/* 74 */        0xc0,           /* 192 */
     696                        0x0,            /* 0 */
     697/* 76 */        0x0,            /* 0 */
     698                        0x0,            /* 0 */
     699/* 78 */        0x0,            /* 0 */
    656700                        0x0,            /* 0 */
    657701/* 80 */        0x0,            /* 0 */
    658                         0x0,            /* 0 */
    659 /* 82 */        0x0,            /* 0 */
    660                         0x0,            /* 0 */
    661 /* 84 */        0x0,            /* 0 */
    662702                        0x46,           /* 70 */
     703/* 82 */       
     704                        0x11, 0x4,      /* FC_RP [alloced_on_stack] */
     705/* 84 */        NdrFcShort( 0x3d4 ),    /* Offset= 980 (1064) */
     706/* 86 */       
     707                        0x13, 0x0,      /* FC_OP */
     708/* 88 */        NdrFcShort( 0x3bc ),    /* Offset= 956 (1044) */
     709/* 90 */       
     710                        0x2b,           /* FC_NON_ENCAPSULATED_UNION */
     711                        0x9,            /* FC_ULONG */
     712/* 92 */        0x7,            /* Corr desc: FC_USHORT */
     713                        0x0,            /*  */
     714/* 94 */        NdrFcShort( 0xfff8 ),   /* -8 */
     715/* 96 */        NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     716/* 98 */        NdrFcShort( 0x2 ),      /* Offset= 2 (100) */
     717/* 100 */       NdrFcShort( 0x10 ),     /* 16 */
     718/* 102 */       NdrFcShort( 0x2f ),     /* 47 */
     719/* 104 */       NdrFcLong( 0x14 ),      /* 20 */
     720/* 108 */       NdrFcShort( 0x800b ),   /* Simple arm type: FC_HYPER */
     721/* 110 */       NdrFcLong( 0x3 ),       /* 3 */
     722/* 114 */       NdrFcShort( 0x8008 ),   /* Simple arm type: FC_LONG */
     723/* 116 */       NdrFcLong( 0x11 ),      /* 17 */
     724/* 120 */       NdrFcShort( 0x8001 ),   /* Simple arm type: FC_BYTE */
     725/* 122 */       NdrFcLong( 0x2 ),       /* 2 */
     726/* 126 */       NdrFcShort( 0x8006 ),   /* Simple arm type: FC_SHORT */
     727/* 128 */       NdrFcLong( 0x4 ),       /* 4 */
     728/* 132 */       NdrFcShort( 0x800a ),   /* Simple arm type: FC_FLOAT */
     729/* 134 */       NdrFcLong( 0x5 ),       /* 5 */
     730/* 138 */       NdrFcShort( 0x800c ),   /* Simple arm type: FC_DOUBLE */
     731/* 140 */       NdrFcLong( 0xb ),       /* 11 */
     732/* 144 */       NdrFcShort( 0x8006 ),   /* Simple arm type: FC_SHORT */
     733/* 146 */       NdrFcLong( 0xa ),       /* 10 */
     734/* 150 */       NdrFcShort( 0x8008 ),   /* Simple arm type: FC_LONG */
     735/* 152 */       NdrFcLong( 0x6 ),       /* 6 */
     736/* 156 */       NdrFcShort( 0xe8 ),     /* Offset= 232 (388) */
     737/* 158 */       NdrFcLong( 0x7 ),       /* 7 */
     738/* 162 */       NdrFcShort( 0x800c ),   /* Simple arm type: FC_DOUBLE */
     739/* 164 */       NdrFcLong( 0x8 ),       /* 8 */
     740/* 168 */       NdrFcShort( 0xff5e ),   /* Offset= -162 (6) */
     741/* 170 */       NdrFcLong( 0xd ),       /* 13 */
     742/* 174 */       NdrFcShort( 0xff92 ),   /* Offset= -110 (64) */
     743/* 176 */       NdrFcLong( 0x9 ),       /* 9 */
     744/* 180 */       NdrFcShort( 0xd6 ),     /* Offset= 214 (394) */
     745/* 182 */       NdrFcLong( 0x2000 ),    /* 8192 */
     746/* 186 */       NdrFcShort( 0xe2 ),     /* Offset= 226 (412) */
     747/* 188 */       NdrFcLong( 0x24 ),      /* 36 */
     748/* 192 */       NdrFcShort( 0x30a ),    /* Offset= 778 (970) */
     749/* 194 */       NdrFcLong( 0x4024 ),    /* 16420 */
     750/* 198 */       NdrFcShort( 0x304 ),    /* Offset= 772 (970) */
     751/* 200 */       NdrFcLong( 0x4011 ),    /* 16401 */
     752/* 204 */       NdrFcShort( 0x302 ),    /* Offset= 770 (974) */
     753/* 206 */       NdrFcLong( 0x4002 ),    /* 16386 */
     754/* 210 */       NdrFcShort( 0x300 ),    /* Offset= 768 (978) */
     755/* 212 */       NdrFcLong( 0x4003 ),    /* 16387 */
     756/* 216 */       NdrFcShort( 0x2fe ),    /* Offset= 766 (982) */
     757/* 218 */       NdrFcLong( 0x4014 ),    /* 16404 */
     758/* 222 */       NdrFcShort( 0x2fc ),    /* Offset= 764 (986) */
     759/* 224 */       NdrFcLong( 0x4004 ),    /* 16388 */
     760/* 228 */       NdrFcShort( 0x2fa ),    /* Offset= 762 (990) */
     761/* 230 */       NdrFcLong( 0x4005 ),    /* 16389 */
     762/* 234 */       NdrFcShort( 0x2f8 ),    /* Offset= 760 (994) */
     763/* 236 */       NdrFcLong( 0x400b ),    /* 16395 */
     764/* 240 */       NdrFcShort( 0x2e2 ),    /* Offset= 738 (978) */
     765/* 242 */       NdrFcLong( 0x400a ),    /* 16394 */
     766/* 246 */       NdrFcShort( 0x2e0 ),    /* Offset= 736 (982) */
     767/* 248 */       NdrFcLong( 0x4006 ),    /* 16390 */
     768/* 252 */       NdrFcShort( 0x2ea ),    /* Offset= 746 (998) */
     769/* 254 */       NdrFcLong( 0x4007 ),    /* 16391 */
     770/* 258 */       NdrFcShort( 0x2e0 ),    /* Offset= 736 (994) */
     771/* 260 */       NdrFcLong( 0x4008 ),    /* 16392 */
     772/* 264 */       NdrFcShort( 0x2e2 ),    /* Offset= 738 (1002) */
     773/* 266 */       NdrFcLong( 0x400d ),    /* 16397 */
     774/* 270 */       NdrFcShort( 0x2e0 ),    /* Offset= 736 (1006) */
     775/* 272 */       NdrFcLong( 0x4009 ),    /* 16393 */
     776/* 276 */       NdrFcShort( 0x2de ),    /* Offset= 734 (1010) */
     777/* 278 */       NdrFcLong( 0x6000 ),    /* 24576 */
     778/* 282 */       NdrFcShort( 0x2dc ),    /* Offset= 732 (1014) */
     779/* 284 */       NdrFcLong( 0x400c ),    /* 16396 */
     780/* 288 */       NdrFcShort( 0x2da ),    /* Offset= 730 (1018) */
     781/* 290 */       NdrFcLong( 0x10 ),      /* 16 */
     782/* 294 */       NdrFcShort( 0x8002 ),   /* Simple arm type: FC_CHAR */
     783/* 296 */       NdrFcLong( 0x12 ),      /* 18 */
     784/* 300 */       NdrFcShort( 0x8006 ),   /* Simple arm type: FC_SHORT */
     785/* 302 */       NdrFcLong( 0x13 ),      /* 19 */
     786/* 306 */       NdrFcShort( 0x8008 ),   /* Simple arm type: FC_LONG */
     787/* 308 */       NdrFcLong( 0x15 ),      /* 21 */
     788/* 312 */       NdrFcShort( 0x800b ),   /* Simple arm type: FC_HYPER */
     789/* 314 */       NdrFcLong( 0x16 ),      /* 22 */
     790/* 318 */       NdrFcShort( 0x8008 ),   /* Simple arm type: FC_LONG */
     791/* 320 */       NdrFcLong( 0x17 ),      /* 23 */
     792/* 324 */       NdrFcShort( 0x8008 ),   /* Simple arm type: FC_LONG */
     793/* 326 */       NdrFcLong( 0xe ),       /* 14 */
     794/* 330 */       NdrFcShort( 0x2b8 ),    /* Offset= 696 (1026) */
     795/* 332 */       NdrFcLong( 0x400e ),    /* 16398 */
     796/* 336 */       NdrFcShort( 0x2bc ),    /* Offset= 700 (1036) */
     797/* 338 */       NdrFcLong( 0x4010 ),    /* 16400 */
     798/* 342 */       NdrFcShort( 0x2ba ),    /* Offset= 698 (1040) */
     799/* 344 */       NdrFcLong( 0x4012 ),    /* 16402 */
     800/* 348 */       NdrFcShort( 0x276 ),    /* Offset= 630 (978) */
     801/* 350 */       NdrFcLong( 0x4013 ),    /* 16403 */
     802/* 354 */       NdrFcShort( 0x274 ),    /* Offset= 628 (982) */
     803/* 356 */       NdrFcLong( 0x4015 ),    /* 16405 */
     804/* 360 */       NdrFcShort( 0x272 ),    /* Offset= 626 (986) */
     805/* 362 */       NdrFcLong( 0x4016 ),    /* 16406 */
     806/* 366 */       NdrFcShort( 0x268 ),    /* Offset= 616 (982) */
     807/* 368 */       NdrFcLong( 0x4017 ),    /* 16407 */
     808/* 372 */       NdrFcShort( 0x262 ),    /* Offset= 610 (982) */
     809/* 374 */       NdrFcLong( 0x0 ),       /* 0 */
     810/* 378 */       NdrFcShort( 0x0 ),      /* Offset= 0 (378) */
     811/* 380 */       NdrFcLong( 0x1 ),       /* 1 */
     812/* 384 */       NdrFcShort( 0x0 ),      /* Offset= 0 (384) */
     813/* 386 */       NdrFcShort( 0xffff ),   /* Offset= -1 (385) */
     814/* 388 */       
     815                        0x15,           /* FC_STRUCT */
     816                        0x7,            /* 7 */
     817/* 390 */       NdrFcShort( 0x8 ),      /* 8 */
     818/* 392 */       0xb,            /* FC_HYPER */
     819                        0x5b,           /* FC_END */
     820/* 394 */       
     821                        0x2f,           /* FC_IP */
     822                        0x5a,           /* FC_CONSTANT_IID */
     823/* 396 */       NdrFcLong( 0x20400 ),   /* 132096 */
     824/* 400 */       NdrFcShort( 0x0 ),      /* 0 */
     825/* 402 */       NdrFcShort( 0x0 ),      /* 0 */
     826/* 404 */       0xc0,           /* 192 */
     827                        0x0,            /* 0 */
     828/* 406 */       0x0,            /* 0 */
     829                        0x0,            /* 0 */
     830/* 408 */       0x0,            /* 0 */
     831                        0x0,            /* 0 */
     832/* 410 */       0x0,            /* 0 */
     833                        0x46,           /* 70 */
     834/* 412 */       
     835                        0x13, 0x10,     /* FC_OP [pointer_deref] */
     836/* 414 */       NdrFcShort( 0x2 ),      /* Offset= 2 (416) */
     837/* 416 */       
     838                        0x13, 0x0,      /* FC_OP */
     839/* 418 */       NdrFcShort( 0x216 ),    /* Offset= 534 (952) */
     840/* 420 */       
     841                        0x2a,           /* FC_ENCAPSULATED_UNION */
     842                        0x49,           /* 73 */
     843/* 422 */       NdrFcShort( 0x18 ),     /* 24 */
     844/* 424 */       NdrFcShort( 0xa ),      /* 10 */
     845/* 426 */       NdrFcLong( 0x8 ),       /* 8 */
     846/* 430 */       NdrFcShort( 0x5a ),     /* Offset= 90 (520) */
     847/* 432 */       NdrFcLong( 0xd ),       /* 13 */
     848/* 436 */       NdrFcShort( 0x7e ),     /* Offset= 126 (562) */
     849/* 438 */       NdrFcLong( 0x9 ),       /* 9 */
     850/* 442 */       NdrFcShort( 0x9e ),     /* Offset= 158 (600) */
     851/* 444 */       NdrFcLong( 0xc ),       /* 12 */
     852/* 448 */       NdrFcShort( 0xc8 ),     /* Offset= 200 (648) */
     853/* 450 */       NdrFcLong( 0x24 ),      /* 36 */
     854/* 454 */       NdrFcShort( 0x124 ),    /* Offset= 292 (746) */
     855/* 456 */       NdrFcLong( 0x800d ),    /* 32781 */
     856/* 460 */       NdrFcShort( 0x140 ),    /* Offset= 320 (780) */
     857/* 462 */       NdrFcLong( 0x10 ),      /* 16 */
     858/* 466 */       NdrFcShort( 0x15a ),    /* Offset= 346 (812) */
     859/* 468 */       NdrFcLong( 0x2 ),       /* 2 */
     860/* 472 */       NdrFcShort( 0x174 ),    /* Offset= 372 (844) */
     861/* 474 */       NdrFcLong( 0x3 ),       /* 3 */
     862/* 478 */       NdrFcShort( 0x18e ),    /* Offset= 398 (876) */
     863/* 480 */       NdrFcLong( 0x14 ),      /* 20 */
     864/* 484 */       NdrFcShort( 0x1a8 ),    /* Offset= 424 (908) */
     865/* 486 */       NdrFcShort( 0xffff ),   /* Offset= -1 (485) */
     866/* 488 */       
     867                        0x1b,           /* FC_CARRAY */
     868                        0x3,            /* 3 */
     869/* 490 */       NdrFcShort( 0x4 ),      /* 4 */
     870/* 492 */       0x19,           /* Corr desc:  field pointer, FC_ULONG */
     871                        0x0,            /*  */
     872/* 494 */       NdrFcShort( 0x0 ),      /* 0 */
     873/* 496 */       NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     874/* 498 */       
     875                        0x4b,           /* FC_PP */
     876                        0x5c,           /* FC_PAD */
     877/* 500 */       
     878                        0x48,           /* FC_VARIABLE_REPEAT */
     879                        0x49,           /* FC_FIXED_OFFSET */
     880/* 502 */       NdrFcShort( 0x4 ),      /* 4 */
     881/* 504 */       NdrFcShort( 0x0 ),      /* 0 */
     882/* 506 */       NdrFcShort( 0x1 ),      /* 1 */
     883/* 508 */       NdrFcShort( 0x0 ),      /* 0 */
     884/* 510 */       NdrFcShort( 0x0 ),      /* 0 */
     885/* 512 */       0x13, 0x0,      /* FC_OP */
     886/* 514 */       NdrFcShort( 0xfe14 ),   /* Offset= -492 (22) */
     887/* 516 */       
     888                        0x5b,           /* FC_END */
     889
     890                        0x8,            /* FC_LONG */
     891/* 518 */       0x5c,           /* FC_PAD */
     892                        0x5b,           /* FC_END */
     893/* 520 */       
     894                        0x16,           /* FC_PSTRUCT */
     895                        0x3,            /* 3 */
     896/* 522 */       NdrFcShort( 0x8 ),      /* 8 */
     897/* 524 */       
     898                        0x4b,           /* FC_PP */
     899                        0x5c,           /* FC_PAD */
     900/* 526 */       
     901                        0x46,           /* FC_NO_REPEAT */
     902                        0x5c,           /* FC_PAD */
     903/* 528 */       NdrFcShort( 0x4 ),      /* 4 */
     904/* 530 */       NdrFcShort( 0x4 ),      /* 4 */
     905/* 532 */       0x11, 0x0,      /* FC_RP */
     906/* 534 */       NdrFcShort( 0xffd2 ),   /* Offset= -46 (488) */
     907/* 536 */       
     908                        0x5b,           /* FC_END */
     909
     910                        0x8,            /* FC_LONG */
     911/* 538 */       0x8,            /* FC_LONG */
     912                        0x5b,           /* FC_END */
     913/* 540 */       
     914                        0x21,           /* FC_BOGUS_ARRAY */
     915                        0x3,            /* 3 */
     916/* 542 */       NdrFcShort( 0x0 ),      /* 0 */
     917/* 544 */       0x19,           /* Corr desc:  field pointer, FC_ULONG */
     918                        0x0,            /*  */
     919/* 546 */       NdrFcShort( 0x0 ),      /* 0 */
     920/* 548 */       NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     921/* 550 */       NdrFcLong( 0xffffffff ),        /* -1 */
     922/* 554 */       NdrFcShort( 0x0 ),      /* Corr flags:  */
     923/* 556 */       0x4c,           /* FC_EMBEDDED_COMPLEX */
     924                        0x0,            /* 0 */
     925/* 558 */       NdrFcShort( 0xfe12 ),   /* Offset= -494 (64) */
     926/* 560 */       0x5c,           /* FC_PAD */
     927                        0x5b,           /* FC_END */
     928/* 562 */       
     929                        0x1a,           /* FC_BOGUS_STRUCT */
     930                        0x3,            /* 3 */
     931/* 564 */       NdrFcShort( 0x8 ),      /* 8 */
     932/* 566 */       NdrFcShort( 0x0 ),      /* 0 */
     933/* 568 */       NdrFcShort( 0x6 ),      /* Offset= 6 (574) */
     934/* 570 */       0x8,            /* FC_LONG */
     935                        0x36,           /* FC_POINTER */
     936/* 572 */       0x5c,           /* FC_PAD */
     937                        0x5b,           /* FC_END */
     938/* 574 */       
     939                        0x11, 0x0,      /* FC_RP */
     940/* 576 */       NdrFcShort( 0xffdc ),   /* Offset= -36 (540) */
     941/* 578 */       
     942                        0x21,           /* FC_BOGUS_ARRAY */
     943                        0x3,            /* 3 */
     944/* 580 */       NdrFcShort( 0x0 ),      /* 0 */
     945/* 582 */       0x19,           /* Corr desc:  field pointer, FC_ULONG */
     946                        0x0,            /*  */
     947/* 584 */       NdrFcShort( 0x0 ),      /* 0 */
     948/* 586 */       NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     949/* 588 */       NdrFcLong( 0xffffffff ),        /* -1 */
     950/* 592 */       NdrFcShort( 0x0 ),      /* Corr flags:  */
     951/* 594 */       0x4c,           /* FC_EMBEDDED_COMPLEX */
     952                        0x0,            /* 0 */
     953/* 596 */       NdrFcShort( 0xff36 ),   /* Offset= -202 (394) */
     954/* 598 */       0x5c,           /* FC_PAD */
     955                        0x5b,           /* FC_END */
     956/* 600 */       
     957                        0x1a,           /* FC_BOGUS_STRUCT */
     958                        0x3,            /* 3 */
     959/* 602 */       NdrFcShort( 0x8 ),      /* 8 */
     960/* 604 */       NdrFcShort( 0x0 ),      /* 0 */
     961/* 606 */       NdrFcShort( 0x6 ),      /* Offset= 6 (612) */
     962/* 608 */       0x8,            /* FC_LONG */
     963                        0x36,           /* FC_POINTER */
     964/* 610 */       0x5c,           /* FC_PAD */
     965                        0x5b,           /* FC_END */
     966/* 612 */       
     967                        0x11, 0x0,      /* FC_RP */
     968/* 614 */       NdrFcShort( 0xffdc ),   /* Offset= -36 (578) */
     969/* 616 */       
     970                        0x1b,           /* FC_CARRAY */
     971                        0x3,            /* 3 */
     972/* 618 */       NdrFcShort( 0x4 ),      /* 4 */
     973/* 620 */       0x19,           /* Corr desc:  field pointer, FC_ULONG */
     974                        0x0,            /*  */
     975/* 622 */       NdrFcShort( 0x0 ),      /* 0 */
     976/* 624 */       NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     977/* 626 */       
     978                        0x4b,           /* FC_PP */
     979                        0x5c,           /* FC_PAD */
     980/* 628 */       
     981                        0x48,           /* FC_VARIABLE_REPEAT */
     982                        0x49,           /* FC_FIXED_OFFSET */
     983/* 630 */       NdrFcShort( 0x4 ),      /* 4 */
     984/* 632 */       NdrFcShort( 0x0 ),      /* 0 */
     985/* 634 */       NdrFcShort( 0x1 ),      /* 1 */
     986/* 636 */       NdrFcShort( 0x0 ),      /* 0 */
     987/* 638 */       NdrFcShort( 0x0 ),      /* 0 */
     988/* 640 */       0x13, 0x0,      /* FC_OP */
     989/* 642 */       NdrFcShort( 0x192 ),    /* Offset= 402 (1044) */
     990/* 644 */       
     991                        0x5b,           /* FC_END */
     992
     993                        0x8,            /* FC_LONG */
     994/* 646 */       0x5c,           /* FC_PAD */
     995                        0x5b,           /* FC_END */
     996/* 648 */       
     997                        0x1a,           /* FC_BOGUS_STRUCT */
     998                        0x3,            /* 3 */
     999/* 650 */       NdrFcShort( 0x8 ),      /* 8 */
     1000/* 652 */       NdrFcShort( 0x0 ),      /* 0 */
     1001/* 654 */       NdrFcShort( 0x6 ),      /* Offset= 6 (660) */
     1002/* 656 */       0x8,            /* FC_LONG */
     1003                        0x36,           /* FC_POINTER */
     1004/* 658 */       0x5c,           /* FC_PAD */
     1005                        0x5b,           /* FC_END */
     1006/* 660 */       
     1007                        0x11, 0x0,      /* FC_RP */
     1008/* 662 */       NdrFcShort( 0xffd2 ),   /* Offset= -46 (616) */
     1009/* 664 */       
     1010                        0x2f,           /* FC_IP */
     1011                        0x5a,           /* FC_CONSTANT_IID */
     1012/* 666 */       NdrFcLong( 0x2f ),      /* 47 */
     1013/* 670 */       NdrFcShort( 0x0 ),      /* 0 */
     1014/* 672 */       NdrFcShort( 0x0 ),      /* 0 */
     1015/* 674 */       0xc0,           /* 192 */
     1016                        0x0,            /* 0 */
     1017/* 676 */       0x0,            /* 0 */
     1018                        0x0,            /* 0 */
     1019/* 678 */       0x0,            /* 0 */
     1020                        0x0,            /* 0 */
     1021/* 680 */       0x0,            /* 0 */
     1022                        0x46,           /* 70 */
     1023/* 682 */       
     1024                        0x1b,           /* FC_CARRAY */
     1025                        0x0,            /* 0 */
     1026/* 684 */       NdrFcShort( 0x1 ),      /* 1 */
     1027/* 686 */       0x19,           /* Corr desc:  field pointer, FC_ULONG */
     1028                        0x0,            /*  */
     1029/* 688 */       NdrFcShort( 0x4 ),      /* 4 */
     1030/* 690 */       NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     1031/* 692 */       0x1,            /* FC_BYTE */
     1032                        0x5b,           /* FC_END */
     1033/* 694 */       
     1034                        0x1a,           /* FC_BOGUS_STRUCT */
     1035                        0x3,            /* 3 */
     1036/* 696 */       NdrFcShort( 0x10 ),     /* 16 */
     1037/* 698 */       NdrFcShort( 0x0 ),      /* 0 */
     1038/* 700 */       NdrFcShort( 0xa ),      /* Offset= 10 (710) */
     1039/* 702 */       0x8,            /* FC_LONG */
     1040                        0x8,            /* FC_LONG */
     1041/* 704 */       0x4c,           /* FC_EMBEDDED_COMPLEX */
     1042                        0x0,            /* 0 */
     1043/* 706 */       NdrFcShort( 0xffd6 ),   /* Offset= -42 (664) */
     1044/* 708 */       0x36,           /* FC_POINTER */
     1045                        0x5b,           /* FC_END */
     1046/* 710 */       
     1047                        0x13, 0x0,      /* FC_OP */
     1048/* 712 */       NdrFcShort( 0xffe2 ),   /* Offset= -30 (682) */
     1049/* 714 */       
     1050                        0x1b,           /* FC_CARRAY */
     1051                        0x3,            /* 3 */
     1052/* 716 */       NdrFcShort( 0x4 ),      /* 4 */
     1053/* 718 */       0x19,           /* Corr desc:  field pointer, FC_ULONG */
     1054                        0x0,            /*  */
     1055/* 720 */       NdrFcShort( 0x0 ),      /* 0 */
     1056/* 722 */       NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     1057/* 724 */       
     1058                        0x4b,           /* FC_PP */
     1059                        0x5c,           /* FC_PAD */
     1060/* 726 */       
     1061                        0x48,           /* FC_VARIABLE_REPEAT */
     1062                        0x49,           /* FC_FIXED_OFFSET */
     1063/* 728 */       NdrFcShort( 0x4 ),      /* 4 */
     1064/* 730 */       NdrFcShort( 0x0 ),      /* 0 */
     1065/* 732 */       NdrFcShort( 0x1 ),      /* 1 */
     1066/* 734 */       NdrFcShort( 0x0 ),      /* 0 */
     1067/* 736 */       NdrFcShort( 0x0 ),      /* 0 */
     1068/* 738 */       0x13, 0x0,      /* FC_OP */
     1069/* 740 */       NdrFcShort( 0xffd2 ),   /* Offset= -46 (694) */
     1070/* 742 */       
     1071                        0x5b,           /* FC_END */
     1072
     1073                        0x8,            /* FC_LONG */
     1074/* 744 */       0x5c,           /* FC_PAD */
     1075                        0x5b,           /* FC_END */
     1076/* 746 */       
     1077                        0x1a,           /* FC_BOGUS_STRUCT */
     1078                        0x3,            /* 3 */
     1079/* 748 */       NdrFcShort( 0x8 ),      /* 8 */
     1080/* 750 */       NdrFcShort( 0x0 ),      /* 0 */
     1081/* 752 */       NdrFcShort( 0x6 ),      /* Offset= 6 (758) */
     1082/* 754 */       0x8,            /* FC_LONG */
     1083                        0x36,           /* FC_POINTER */
     1084/* 756 */       0x5c,           /* FC_PAD */
     1085                        0x5b,           /* FC_END */
     1086/* 758 */       
     1087                        0x11, 0x0,      /* FC_RP */
     1088/* 760 */       NdrFcShort( 0xffd2 ),   /* Offset= -46 (714) */
     1089/* 762 */       
     1090                        0x1d,           /* FC_SMFARRAY */
     1091                        0x0,            /* 0 */
     1092/* 764 */       NdrFcShort( 0x8 ),      /* 8 */
     1093/* 766 */       0x1,            /* FC_BYTE */
     1094                        0x5b,           /* FC_END */
     1095/* 768 */       
     1096                        0x15,           /* FC_STRUCT */
     1097                        0x3,            /* 3 */
     1098/* 770 */       NdrFcShort( 0x10 ),     /* 16 */
     1099/* 772 */       0x8,            /* FC_LONG */
     1100                        0x6,            /* FC_SHORT */
     1101/* 774 */       0x6,            /* FC_SHORT */
     1102                        0x4c,           /* FC_EMBEDDED_COMPLEX */
     1103/* 776 */       0x0,            /* 0 */
     1104                        NdrFcShort( 0xfff1 ),   /* Offset= -15 (762) */
     1105                        0x5b,           /* FC_END */
     1106/* 780 */       
     1107                        0x1a,           /* FC_BOGUS_STRUCT */
     1108                        0x3,            /* 3 */
     1109/* 782 */       NdrFcShort( 0x18 ),     /* 24 */
     1110/* 784 */       NdrFcShort( 0x0 ),      /* 0 */
     1111/* 786 */       NdrFcShort( 0xa ),      /* Offset= 10 (796) */
     1112/* 788 */       0x8,            /* FC_LONG */
     1113                        0x36,           /* FC_POINTER */
     1114/* 790 */       0x4c,           /* FC_EMBEDDED_COMPLEX */
     1115                        0x0,            /* 0 */
     1116/* 792 */       NdrFcShort( 0xffe8 ),   /* Offset= -24 (768) */
     1117/* 794 */       0x5c,           /* FC_PAD */
     1118                        0x5b,           /* FC_END */
     1119/* 796 */       
     1120                        0x11, 0x0,      /* FC_RP */
     1121/* 798 */       NdrFcShort( 0xfefe ),   /* Offset= -258 (540) */
     1122/* 800 */       
     1123                        0x1b,           /* FC_CARRAY */
     1124                        0x0,            /* 0 */
     1125/* 802 */       NdrFcShort( 0x1 ),      /* 1 */
     1126/* 804 */       0x19,           /* Corr desc:  field pointer, FC_ULONG */
     1127                        0x0,            /*  */
     1128/* 806 */       NdrFcShort( 0x0 ),      /* 0 */
     1129/* 808 */       NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     1130/* 810 */       0x1,            /* FC_BYTE */
     1131                        0x5b,           /* FC_END */
     1132/* 812 */       
     1133                        0x16,           /* FC_PSTRUCT */
     1134                        0x3,            /* 3 */
     1135/* 814 */       NdrFcShort( 0x8 ),      /* 8 */
     1136/* 816 */       
     1137                        0x4b,           /* FC_PP */
     1138                        0x5c,           /* FC_PAD */
     1139/* 818 */       
     1140                        0x46,           /* FC_NO_REPEAT */
     1141                        0x5c,           /* FC_PAD */
     1142/* 820 */       NdrFcShort( 0x4 ),      /* 4 */
     1143/* 822 */       NdrFcShort( 0x4 ),      /* 4 */
     1144/* 824 */       0x13, 0x0,      /* FC_OP */
     1145/* 826 */       NdrFcShort( 0xffe6 ),   /* Offset= -26 (800) */
     1146/* 828 */       
     1147                        0x5b,           /* FC_END */
     1148
     1149                        0x8,            /* FC_LONG */
     1150/* 830 */       0x8,            /* FC_LONG */
     1151                        0x5b,           /* FC_END */
     1152/* 832 */       
     1153                        0x1b,           /* FC_CARRAY */
     1154                        0x1,            /* 1 */
     1155/* 834 */       NdrFcShort( 0x2 ),      /* 2 */
     1156/* 836 */       0x19,           /* Corr desc:  field pointer, FC_ULONG */
     1157                        0x0,            /*  */
     1158/* 838 */       NdrFcShort( 0x0 ),      /* 0 */
     1159/* 840 */       NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     1160/* 842 */       0x6,            /* FC_SHORT */
     1161                        0x5b,           /* FC_END */
     1162/* 844 */       
     1163                        0x16,           /* FC_PSTRUCT */
     1164                        0x3,            /* 3 */
     1165/* 846 */       NdrFcShort( 0x8 ),      /* 8 */
     1166/* 848 */       
     1167                        0x4b,           /* FC_PP */
     1168                        0x5c,           /* FC_PAD */
     1169/* 850 */       
     1170                        0x46,           /* FC_NO_REPEAT */
     1171                        0x5c,           /* FC_PAD */
     1172/* 852 */       NdrFcShort( 0x4 ),      /* 4 */
     1173/* 854 */       NdrFcShort( 0x4 ),      /* 4 */
     1174/* 856 */       0x13, 0x0,      /* FC_OP */
     1175/* 858 */       NdrFcShort( 0xffe6 ),   /* Offset= -26 (832) */
     1176/* 860 */       
     1177                        0x5b,           /* FC_END */
     1178
     1179                        0x8,            /* FC_LONG */
     1180/* 862 */       0x8,            /* FC_LONG */
     1181                        0x5b,           /* FC_END */
     1182/* 864 */       
     1183                        0x1b,           /* FC_CARRAY */
     1184                        0x3,            /* 3 */
     1185/* 866 */       NdrFcShort( 0x4 ),      /* 4 */
     1186/* 868 */       0x19,           /* Corr desc:  field pointer, FC_ULONG */
     1187                        0x0,            /*  */
     1188/* 870 */       NdrFcShort( 0x0 ),      /* 0 */
     1189/* 872 */       NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     1190/* 874 */       0x8,            /* FC_LONG */
     1191                        0x5b,           /* FC_END */
     1192/* 876 */       
     1193                        0x16,           /* FC_PSTRUCT */
     1194                        0x3,            /* 3 */
     1195/* 878 */       NdrFcShort( 0x8 ),      /* 8 */
     1196/* 880 */       
     1197                        0x4b,           /* FC_PP */
     1198                        0x5c,           /* FC_PAD */
     1199/* 882 */       
     1200                        0x46,           /* FC_NO_REPEAT */
     1201                        0x5c,           /* FC_PAD */
     1202/* 884 */       NdrFcShort( 0x4 ),      /* 4 */
     1203/* 886 */       NdrFcShort( 0x4 ),      /* 4 */
     1204/* 888 */       0x13, 0x0,      /* FC_OP */
     1205/* 890 */       NdrFcShort( 0xffe6 ),   /* Offset= -26 (864) */
     1206/* 892 */       
     1207                        0x5b,           /* FC_END */
     1208
     1209                        0x8,            /* FC_LONG */
     1210/* 894 */       0x8,            /* FC_LONG */
     1211                        0x5b,           /* FC_END */
     1212/* 896 */       
     1213                        0x1b,           /* FC_CARRAY */
     1214                        0x7,            /* 7 */
     1215/* 898 */       NdrFcShort( 0x8 ),      /* 8 */
     1216/* 900 */       0x19,           /* Corr desc:  field pointer, FC_ULONG */
     1217                        0x0,            /*  */
     1218/* 902 */       NdrFcShort( 0x0 ),      /* 0 */
     1219/* 904 */       NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     1220/* 906 */       0xb,            /* FC_HYPER */
     1221                        0x5b,           /* FC_END */
     1222/* 908 */       
     1223                        0x16,           /* FC_PSTRUCT */
     1224                        0x3,            /* 3 */
     1225/* 910 */       NdrFcShort( 0x8 ),      /* 8 */
     1226/* 912 */       
     1227                        0x4b,           /* FC_PP */
     1228                        0x5c,           /* FC_PAD */
     1229/* 914 */       
     1230                        0x46,           /* FC_NO_REPEAT */
     1231                        0x5c,           /* FC_PAD */
     1232/* 916 */       NdrFcShort( 0x4 ),      /* 4 */
     1233/* 918 */       NdrFcShort( 0x4 ),      /* 4 */
     1234/* 920 */       0x13, 0x0,      /* FC_OP */
     1235/* 922 */       NdrFcShort( 0xffe6 ),   /* Offset= -26 (896) */
     1236/* 924 */       
     1237                        0x5b,           /* FC_END */
     1238
     1239                        0x8,            /* FC_LONG */
     1240/* 926 */       0x8,            /* FC_LONG */
     1241                        0x5b,           /* FC_END */
     1242/* 928 */       
     1243                        0x15,           /* FC_STRUCT */
     1244                        0x3,            /* 3 */
     1245/* 930 */       NdrFcShort( 0x8 ),      /* 8 */
     1246/* 932 */       0x8,            /* FC_LONG */
     1247                        0x8,            /* FC_LONG */
     1248/* 934 */       0x5c,           /* FC_PAD */
     1249                        0x5b,           /* FC_END */
     1250/* 936 */       
     1251                        0x1b,           /* FC_CARRAY */
     1252                        0x3,            /* 3 */
     1253/* 938 */       NdrFcShort( 0x8 ),      /* 8 */
     1254/* 940 */       0x7,            /* Corr desc: FC_USHORT */
     1255                        0x0,            /*  */
     1256/* 942 */       NdrFcShort( 0xffd8 ),   /* -40 */
     1257/* 944 */       NdrFcShort( 0x1 ),      /* Corr flags:  early, */
     1258/* 946 */       0x4c,           /* FC_EMBEDDED_COMPLEX */
     1259                        0x0,            /* 0 */
     1260/* 948 */       NdrFcShort( 0xffec ),   /* Offset= -20 (928) */
     1261/* 950 */       0x5c,           /* FC_PAD */
     1262                        0x5b,           /* FC_END */
     1263/* 952 */       
     1264                        0x1a,           /* FC_BOGUS_STRUCT */
     1265                        0x3,            /* 3 */
     1266/* 954 */       NdrFcShort( 0x28 ),     /* 40 */
     1267/* 956 */       NdrFcShort( 0xffec ),   /* Offset= -20 (936) */
     1268/* 958 */       NdrFcShort( 0x0 ),      /* Offset= 0 (958) */
     1269/* 960 */       0x6,            /* FC_SHORT */
     1270                        0x6,            /* FC_SHORT */
     1271/* 962 */       0x8,            /* FC_LONG */
     1272                        0x8,            /* FC_LONG */
     1273/* 964 */       0x4c,           /* FC_EMBEDDED_COMPLEX */
     1274                        0x0,            /* 0 */
     1275/* 966 */       NdrFcShort( 0xfdde ),   /* Offset= -546 (420) */
     1276/* 968 */       0x5c,           /* FC_PAD */
     1277                        0x5b,           /* FC_END */
     1278/* 970 */       
     1279                        0x13, 0x0,      /* FC_OP */
     1280/* 972 */       NdrFcShort( 0xfeea ),   /* Offset= -278 (694) */
     1281/* 974 */       
     1282                        0x13, 0x8,      /* FC_OP [simple_pointer] */
     1283/* 976 */       0x1,            /* FC_BYTE */
     1284                        0x5c,           /* FC_PAD */
     1285/* 978 */       
     1286                        0x13, 0x8,      /* FC_OP [simple_pointer] */
     1287/* 980 */       0x6,            /* FC_SHORT */
     1288                        0x5c,           /* FC_PAD */
     1289/* 982 */       
     1290                        0x13, 0x8,      /* FC_OP [simple_pointer] */
     1291/* 984 */       0x8,            /* FC_LONG */
     1292                        0x5c,           /* FC_PAD */
     1293/* 986 */       
     1294                        0x13, 0x8,      /* FC_OP [simple_pointer] */
     1295/* 988 */       0xb,            /* FC_HYPER */
     1296                        0x5c,           /* FC_PAD */
     1297/* 990 */       
     1298                        0x13, 0x8,      /* FC_OP [simple_pointer] */
     1299/* 992 */       0xa,            /* FC_FLOAT */
     1300                        0x5c,           /* FC_PAD */
     1301/* 994 */       
     1302                        0x13, 0x8,      /* FC_OP [simple_pointer] */
     1303/* 996 */       0xc,            /* FC_DOUBLE */
     1304                        0x5c,           /* FC_PAD */
     1305/* 998 */       
     1306                        0x13, 0x0,      /* FC_OP */
     1307/* 1000 */      NdrFcShort( 0xfd9c ),   /* Offset= -612 (388) */
     1308/* 1002 */     
     1309                        0x13, 0x10,     /* FC_OP [pointer_deref] */
     1310/* 1004 */      NdrFcShort( 0xfc1a ),   /* Offset= -998 (6) */
     1311/* 1006 */     
     1312                        0x13, 0x10,     /* FC_OP [pointer_deref] */
     1313/* 1008 */      NdrFcShort( 0xfc50 ),   /* Offset= -944 (64) */
     1314/* 1010 */     
     1315                        0x13, 0x10,     /* FC_OP [pointer_deref] */
     1316/* 1012 */      NdrFcShort( 0xfd96 ),   /* Offset= -618 (394) */
     1317/* 1014 */     
     1318                        0x13, 0x10,     /* FC_OP [pointer_deref] */
     1319/* 1016 */      NdrFcShort( 0xfda4 ),   /* Offset= -604 (412) */
     1320/* 1018 */     
     1321                        0x13, 0x10,     /* FC_OP [pointer_deref] */
     1322/* 1020 */      NdrFcShort( 0x2 ),      /* Offset= 2 (1022) */
     1323/* 1022 */     
     1324                        0x13, 0x0,      /* FC_OP */
     1325/* 1024 */      NdrFcShort( 0x14 ),     /* Offset= 20 (1044) */
     1326/* 1026 */     
     1327                        0x15,           /* FC_STRUCT */
     1328                        0x7,            /* 7 */
     1329/* 1028 */      NdrFcShort( 0x10 ),     /* 16 */
     1330/* 1030 */      0x6,            /* FC_SHORT */
     1331                        0x1,            /* FC_BYTE */
     1332/* 1032 */      0x1,            /* FC_BYTE */
     1333                        0x8,            /* FC_LONG */
     1334/* 1034 */      0xb,            /* FC_HYPER */
     1335                        0x5b,           /* FC_END */
     1336/* 1036 */     
     1337                        0x13, 0x0,      /* FC_OP */
     1338/* 1038 */      NdrFcShort( 0xfff4 ),   /* Offset= -12 (1026) */
     1339/* 1040 */     
     1340                        0x13, 0x8,      /* FC_OP [simple_pointer] */
     1341/* 1042 */      0x2,            /* FC_CHAR */
     1342                        0x5c,           /* FC_PAD */
     1343/* 1044 */     
     1344                        0x1a,           /* FC_BOGUS_STRUCT */
     1345                        0x7,            /* 7 */
     1346/* 1046 */      NdrFcShort( 0x20 ),     /* 32 */
     1347/* 1048 */      NdrFcShort( 0x0 ),      /* 0 */
     1348/* 1050 */      NdrFcShort( 0x0 ),      /* Offset= 0 (1050) */
     1349/* 1052 */      0x8,            /* FC_LONG */
     1350                        0x8,            /* FC_LONG */
     1351/* 1054 */      0x6,            /* FC_SHORT */
     1352                        0x6,            /* FC_SHORT */
     1353/* 1056 */      0x6,            /* FC_SHORT */
     1354                        0x6,            /* FC_SHORT */
     1355/* 1058 */      0x4c,           /* FC_EMBEDDED_COMPLEX */
     1356                        0x0,            /* 0 */
     1357/* 1060 */      NdrFcShort( 0xfc36 ),   /* Offset= -970 (90) */
     1358/* 1062 */      0x5c,           /* FC_PAD */
     1359                        0x5b,           /* FC_END */
     1360/* 1064 */      0xb4,           /* FC_USER_MARSHAL */
     1361                        0x83,           /* 131 */
     1362/* 1066 */      NdrFcShort( 0x1 ),      /* 1 */
     1363/* 1068 */      NdrFcShort( 0x10 ),     /* 16 */
     1364/* 1070 */      NdrFcShort( 0x0 ),      /* 0 */
     1365/* 1072 */      NdrFcShort( 0xfc26 ),   /* Offset= -986 (86) */
     1366/* 1074 */     
     1367                        0x11, 0x10,     /* FC_RP [pointer_deref] */
     1368/* 1076 */      NdrFcShort( 0xfc0c ),   /* Offset= -1012 (64) */
    6631369
    6641370                        0x0
     
    6741380            ,BSTR_UserUnmarshal
    6751381            ,BSTR_UserFree
     1382            },
     1383            {
     1384            VARIANT_UserSize
     1385            ,VARIANT_UserMarshal
     1386            ,VARIANT_UserUnmarshal
     1387            ,VARIANT_UserFree
    6761388            }
    6771389
     
    7051417    180,
    7061418    216,
    707     258
     1419    258,
     1420    300
    7081421    };
    7091422
     
    7291442    0,
    7301443    0};
    731 CINTERFACE_PROXY_VTABLE(15) _ISpyProxyVtbl =
     1444CINTERFACE_PROXY_VTABLE(16) _ISpyProxyVtbl =
    7321445{
    7331446    &ISpy_ProxyInfo,
     
    7471460    (void *) (INT_PTR) -1 /* ISpy::DoFilterGraphListModal */ ,
    7481461    (void *) (INT_PTR) -1 /* ISpy::OpenGraphStudioNext */ ,
    749     (void *) (INT_PTR) -1 /* ISpy::OpenGraphEdit */
     1462    (void *) (INT_PTR) -1 /* ISpy::OpenGraphEdit */ ,
     1463    (void *) (INT_PTR) -1 /* ISpy::ReadRunPropertyBag */
    7501464};
    7511465
     
    7641478    NdrStubCall2,
    7651479    NdrStubCall2,
     1480    NdrStubCall2,
    7661481    NdrStubCall2
    7671482};
     
    7711486    &IID_ISpy,
    7721487    &ISpy_ServerInfo,
    773     15,
     1488    16,
    7741489    &ISpy_table[-3],
    7751490    CStdStubBuffer_DELEGATING_METHODS
     
    9191634    (unsigned short) -1,
    9201635    (unsigned short) -1,
    921     300,
    922     336,
     1636    348,
     1637    384,
    9231638    72,
    924     372,
     1639    420,
    9251640    144,
    926     408,
    927     456
     1641    456,
     1642    504
    9281643    };
    9291644
  • trunk/DirectShowSpy/FilterGraphHelper.h

    r265 r266  
    99#include "DirectShowSpy_i.h"
    1010#include "Common.h"
     11#include "PropertyBag.h"
    1112#include "AboutDialog.h"
    1213#include "..\..\Repository-Private\Utilities\EmailTools\Message.h"
     
    5758END_DLGRESIZE_MAP()
    5859
    59 public:
    60 
    61         ////////////////////////////////////////////////////////
    62         // CSimpleSortTraitsT
    63 
    64         class CNameSortTraits :
    65                 public CSimpleSortTraitsT<CString>
    66         {
    67         public:
    68         // CNameSortTraits
    69                 static INT_PTR CompareElements(const CString& sElementA, const CString& sElementB, PARAMETERARGUMENT Parameter)
    70                 {
    71                         return _tcsicmp(sElementA, sElementB);
    72                 }
    73         };
    74 
    7560private:
    7661        BOOL m_bActivating;
     
    10186        {
    10287        }
    103         static CString GetText(IPropertyBag2* pPropertyBag2)
    104         {
    105                 _A(pPropertyBag2);
    106                 CString sText;
    107                 ULONG nPropertyCount = 0;
    108                 __C(pPropertyBag2->CountProperties(&nPropertyCount));
    109                 _Z4(atlTraceGeneral, 4, _T("nPropertyCount %d\n"), nPropertyCount);
    110                 if(nPropertyCount)
    111                 {
    112                         CTempBufferT<PROPBAG2> pPropBags(nPropertyCount);
    113                         ZeroMemory((PROPBAG2*) pPropBags, nPropertyCount * sizeof *pPropBags);
    114                         ULONG nPropBagCount = 0;
    115                         __C(pPropertyBag2->GetPropertyInfo(0, nPropertyCount, pPropBags, &nPropBagCount));
    116                         _Z4(atlTraceGeneral, 4, _T("nPropBagCount %d\n"), nPropBagCount);
    117                         CRoListT<CComHeapPtr<OLECHAR>> NameList;
    118                         for(ULONG nIndex = 0; nIndex < nPropBagCount; nIndex++)
    119                                 NameList.GetAt(NameList.AddTail()).Attach(pPropBags[nIndex].pstrName);
    120                         CRoArrayT<CComVariantArray> ValueArray;
    121                         __D(ValueArray.SetCount(nPropBagCount), E_OUTOFMEMORY);
    122                         CTempBufferT<HRESULT> pnResults(nPropBagCount);
    123                         __C(pPropertyBag2->Read(nPropBagCount, pPropBags, NULL, ValueArray.GetData(), pnResults));
    124                         CRoMapT<CString, CComVariantArray> Map;
    125                         CRoArrayT<CString> NameArray;
    126                         for(ULONG nIndex = 0; nIndex < nPropBagCount; nIndex++)
    127                                 if(SUCCEEDED(pnResults[nIndex]))
    128                                 {
    129                                         CString sName(pPropBags[nIndex].pstrName);
    130                                         _Z4(atlTraceGeneral, 4, _T("sName \"%s\"\n"), sName);
    131                                         NameArray.Add(sName);
    132                                         _W(Map.SetAt(sName, ValueArray[nIndex]));
    133                                 }
    134                         _SortHelper::QuickSort<CNameSortTraits>(NameArray);
    135                         for(SIZE_T nIndex = 0; nIndex < NameArray.GetCount(); nIndex++)
    136                         {
    137                                 const CString& sName = NameArray[nIndex];
    138                                 _Z4(atlTraceGeneral, 4, _T("sName \"%s\"\n"), sName);
    139                                 CString sValue;
    140                                 CComVariantArray vValue;
    141                                 if(!Map.Lookup(sName, vValue))
    142                                         continue;
    143                                 CString sComment;
    144                                 #pragma region Friendly Comment
    145                                 switch(vValue.vt)
    146                                 {
    147                                 #pragma region VT_I4
    148                                 case VT_I4:
    149                                         if(vValue.lVal < -999 || vValue.lVal > 999)
    150                                                 sComment = _StringHelper::FormatNumber(vValue.lVal);
    151                                         break;
    152                                 #pragma endregion
    153                                 #pragma region VT_R8
    154                                 case VT_R8:
    155                                         if(vValue.dblVal > -0.001 || vValue.dblVal < 0.001)
    156                                                 sComment = _StringHelper::FormatNumber(vValue.dblVal, 6);
    157                                         else
    158                                         if(vValue.lVal < -999.0 || vValue.lVal > 999.0)
    159                                                 sComment = _StringHelper::FormatNumber(vValue.dblVal, 1);
    160                                         break;
    161                                 #pragma endregion
    162                                 }
    163                                 #pragma endregion
    164                                 const HRESULT nChangeTypeResult = vValue.ChangeType(VT_BSTR);
    165                                 _Z45_HRESULT(nChangeTypeResult);
    166                                 if(FAILED(nChangeTypeResult))
    167                                         continue;
    168                                 sText.AppendFormat(_T(" * ") _T("`%s`: `%s`"), sName, CString(vValue.bstrVal));
    169                                 if(!sComment.IsEmpty())
    170                                         sText.AppendFormat(_T(" // %s"), sComment);
    171                                 sText.Append(_T("\r\n"));
    172                         }
    173                 }
    174                 return sText;
    175         }
    17688        VOID UpdateText()
    17789        {
    17890                CString sText;
    17991                _A(GetObjectCount() == 1);
    180                 const CComQIPtr<IRunPropertyBagAware> pRunPropertyBagAware = GetObject(0);
    181                 __D(pRunPropertyBagAware, E_NOINTERFACE);
    182                 CComPtr<IUnknown> pPropertyBagUnknown;
    183                 __C(pRunPropertyBagAware->get_Value(&pPropertyBagUnknown));
    184                 const CComQIPtr<IPropertyBag2> pPropertyBag2 = pPropertyBagUnknown;
    185                 __D(pPropertyBag2, E_NOINTERFACE);
    186                 sText += GetText(pPropertyBag2);
    187                 m_TextEdit.SetValue(sText);
     92                m_TextEdit.SetValue(CPropertyBagHelper::GetPropertyBagText(GetObject(0)));
    18893        }
    18994
     
    18161721                                                _ATLTRY
    18171722                                                {
    1818                                                         const CComQIPtr<IRunPropertyBagAware> pRunPropertyBagAware = Data.m_pBaseFilter;
    1819                                                         if(pRunPropertyBagAware)
     1723                                                        const CString sPropertyBagText = CPropertyBagHelper::GetPropertyBagText(Data.m_pBaseFilter, CComQIPtr<ISpy>(m_Owner.m_pFilterGraph));
     1724                                                        if(!sPropertyBagText.IsEmpty())
    18201725                                                        {
    1821                                                                 CComPtr<IUnknown> pPropertyBagUnknown;
    1822                                                                 __C(pRunPropertyBagAware->get_Value(&pPropertyBagUnknown));
    1823                                                                 const CComQIPtr<IPropertyBag2> pPropertyBag2 = pPropertyBagUnknown;
    1824                                                                 __D(pPropertyBag2, E_NOINTERFACE);
    1825                                                                 const CString sPropertyBagText = CRunPropertyBagPropertyPage::GetText(pPropertyBag2);
    1826                                                                 if(!sPropertyBagText.IsEmpty())
    1827                                                                 {
    1828                                                                         sText += AtlFormatString(_T("## ") _T("Runtime Properties") _T("\r\n") _T("\r\n"));
    1829                                                                         sText += sPropertyBagText;
    1830                                                                         sText += _T("\r\n");
    1831                                                                 }
     1726                                                                sText += AtlFormatString(_T("## ") _T("Runtime Properties") _T("\r\n") _T("\r\n"));
     1727                                                                sText += sPropertyBagText;
     1728                                                                sText += _T("\r\n");
    18321729                                                        }
    18331730                                                }
     
    26562553                                {
    26572554                                        const CComPtr<IBaseFilter>& pBaseFilter = FilterArray[nIndex];
    2658                                         const CComQIPtr<IRunPropertyBagAware> pRunPropertyBagAware = pBaseFilter;
    2659                                         if(!pRunPropertyBagAware)
    2660                                                 continue;
    2661                                         _Z4(atlTraceGeneral, 4, _T("pBaseFilter 0x%p \"%ls\"\n"), pBaseFilter, _FilterGraphHelper::GetFilterName(pBaseFilter));
    2662                                         CComPtr<IUnknown> pPropertyBagUnknown;
    2663                                         __C(pRunPropertyBagAware->get_Value(&pPropertyBagUnknown));
    2664                                         const CComQIPtr<IPropertyBag2> pPropertyBag2 = pPropertyBagUnknown;
    2665                                         __D(pPropertyBag2, E_NOINTERFACE);
    2666                                         const CString sPropertyBagText = CRunPropertyBagPropertyPage::GetText(pPropertyBag2);
     2555                                        //_Z4(atlTraceGeneral, 4, _T("pBaseFilter 0x%p \"%ls\"\n"), pBaseFilter, _FilterGraphHelper::GetFilterName(pBaseFilter));
     2556                                        const CString sPropertyBagText = CPropertyBagHelper::GetPropertyBagText(pBaseFilter, CComQIPtr<ISpy>(pFilterGraph));
    26672557                                        if(sPropertyBagText.IsEmpty())
    26682558                                                continue;
  • trunk/DirectShowSpy/FilterGraphSpy.h

    r249 r266  
    88#include "DirectShowSpy_i.h"
    99#include "Common.h"
     10#include "PropertyBag.h"
    1011
    1112HRESULT FilterGraphHelper_OpenGraphStudioNext(LONG nParentWindowHandle, LPCWSTR pszMonikerDisplayName, VARIANT_BOOL* pbResult);
     
    711712                return S_OK;
    712713        }
     714        STDMETHOD(ReadRunPropertyBag)(IUnknown* pBaseFilterUnknown, VARIANT_BOOL bAllowExtension, VARIANT* pvValue)
     715        {
     716                _Z4(atlTraceCOM, 4, _T("this 0x%p, pBaseFilterUnknown 0x%p, bAllowExtension %d\n"), this, pBaseFilterUnknown, bAllowExtension);
     717                _ATLTRY
     718                {
     719                        __D(pBaseFilterUnknown, E_INVALIDARG);
     720                        __D(pvValue, E_POINTER);
     721                        VariantInit(pvValue);
     722                        _V(CPropertyBagHelper::ReadRunPropertyBag(pBaseFilterUnknown, bAllowExtension != ATL_VARIANT_FALSE).Detach(pvValue));
     723                }
     724                _ATLCATCHALL()
     725                {
     726                        _Z_EXCEPTION();
     727                }
     728                return S_OK;
     729        }
    713730
    714731// IFilterGraph
Note: See TracChangeset for help on using the changeset viewer.