Changeset 247


Ignore:
Timestamp:
Jan 12, 2014, 2:52:33 AM (9 years ago)
Author:
roman
Message:

Added ISpy methods, added IFilterGraphHelper methods for better GSN integration; Added property frame tree info tips and class descriptions; Added email credentials cleanup link and hints

Location:
trunk/DirectShowSpy
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/DirectShowSpy/DirectShowSpy.idl

    r242 r247  
    2121        [id(3), propget] HRESULT FriendlyName([out, retval] BSTR* psFriendlyName);
    2222        [id(3), propput] HRESULT FriendlyName([in] BSTR sFriendlyName);
     23        [id(4)] HRESULT OpenGraphStudioNext([in] LONG nParentWindowHandle, [out, retval] VARIANT_BOOL* pbResult);
     24        [id(5)] HRESULT OpenGraphEdit([in] LONG nParentWindowHandle, [out, retval] VARIANT_BOOL* pbResult);
    2325};
    2426[
     
    6163        [id(1), propget] HRESULT Text([out, retval] BSTR* psText);
    6264        [id(2)] HRESULT DoPropertyFrameModal([in] LONG nParentWindowHandle);
     65        [id(3)] HRESULT DoFilterGraphListModal([in] LONG nParentWindowHandle);
     66        [id(4)] HRESULT OpenGraphStudioNext([in] LONG nParentWindowHandle, [in] BSTR sMonikerDisplayName, [out, retval] VARIANT_BOOL* pbResult);
     67        [id(5)] HRESULT OpenGraphEdit([in] LONG nParentWindowHandle, [in] BSTR sMonikerDisplayName, [out, retval] VARIANT_BOOL* pbResult);
    6368};
    6469[
  • trunk/DirectShowSpy/DirectShowSpy.rc

    r243 r247  
    5959
    6060VS_VERSION_INFO VERSIONINFO
    61  FILEVERSION  1, 0, 0, 1215
     61 FILEVERSION  1, 0, 0, 1229
    6262 PRODUCTVERSION 1,0,0,1
    6363 FILEFLAGSMASK 0x3fL
     
    7878            VALUE "CompanyName", "Roman Ryltsov"
    7979            VALUE "FileDescription", "Alax.Info DirectShow Spy Module"
    80             VALUE "FileVersion",  "1, 0, 0, 1215\0"
     80            VALUE "FileVersion",  "1, 0, 0, 1229\0"
    8181            VALUE "InternalName", "DirectShowSpy.dll"
    8282            VALUE "LegalCopyright", "Copyright © Alax.Info, Roman Ryltsov, 2008-2014"
     
    277277    EDITTEXT        IDC_FILTERGRAPHHELPER_EMAIL_BODY,6,138,360,84,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL | WS_HSCROLL
    278278    PUSHBUTTON      "&Send",IDC_FILTERGRAPHHELPER_EMAIL_SEND,306,228,50,14
     279    LTEXT           "<A>Erase Cached Credentials</A>",IDC_FILTERGRAPHHELPER_EMAIL_CLEANUP,12,240,116,8
    279280END
    280281
     
    352353IDD_FILTERGRAPHLIST_LIST_PROPERTYPAGE ACCELERATORS
    353354BEGIN
    354         VK_F6,          IDC_FILTERGRAPHLIST_LIST_CHECKALL, VIRTKEY, NOINVERT
     355    VK_F6,          IDC_FILTERGRAPHLIST_LIST_CHECKALL, VIRTKEY, NOINVERT
    355356    VK_F7,          IDC_FILTERGRAPHLIST_LIST_OPENGSN, VIRTKEY, NOINVERT
    356357    VK_F8,          IDC_FILTERGRAPHLIST_LIST_OPENGE, VIRTKEY, NOINVERT
  • trunk/DirectShowSpy/DirectShowSpy.vcxproj.filters

    r233 r247  
    5858      <Filter>Resource Files</Filter>
    5959    </None>
    60     <None Include="..\..\Repository-Private\Utilities\EmailTools\_Bin\Win32\Release\EmailTools\EmailTools.tlb" />
     60    <None Include="..\..\Repository-Private\Utilities\EmailTools\_Bin\Win32\Release\EmailTools\EmailTools.tlb">
     61      <Filter>Resource Files</Filter>
     62    </None>
    6163  </ItemGroup>
    6264  <ItemGroup>
  • trunk/DirectShowSpy/DirectShowSpy_i.c

    r242 r247  
    77
    88 /* File created by MIDL compiler version 7.00.0555 */
    9 /* at Sat Jan 11 18:11:25 2014
     9/* at Sun Jan 12 11:51:42 2014
    1010 */
    1111/* Compiler settings for DirectShowSpy.idl:
  • trunk/DirectShowSpy/DirectShowSpy_i.h

    r242 r247  
    55
    66 /* File created by MIDL compiler version 7.00.0555 */
    7 /* at Sat Jan 11 18:11:25 2014
     7/* at Sun Jan 12 11:51:42 2014
    88 */
    99/* Compiler settings for DirectShowSpy.idl:
     
    184184            /* [in] */ BSTR sFriendlyName) = 0;
    185185       
     186        virtual /* [id] */ HRESULT STDMETHODCALLTYPE OpenGraphStudioNext(
     187            /* [in] */ LONG nParentWindowHandle,
     188            /* [retval][out] */ VARIANT_BOOL *pbResult) = 0;
     189       
     190        virtual /* [id] */ HRESULT STDMETHODCALLTYPE OpenGraphEdit(
     191            /* [in] */ LONG nParentWindowHandle,
     192            /* [retval][out] */ VARIANT_BOOL *pbResult) = 0;
     193       
    186194    };
    187195   
     
    249257            /* [in] */ BSTR sFriendlyName);
    250258       
     259        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OpenGraphStudioNext )(
     260            ISpy * This,
     261            /* [in] */ LONG nParentWindowHandle,
     262            /* [retval][out] */ VARIANT_BOOL *pbResult);
     263       
     264        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OpenGraphEdit )(
     265            ISpy * This,
     266            /* [in] */ LONG nParentWindowHandle,
     267            /* [retval][out] */ VARIANT_BOOL *pbResult);
     268       
    251269        END_INTERFACE
    252270    } ISpyVtbl;
     
    296314#define ISpy_put_FriendlyName(This,sFriendlyName)       \
    297315    ( (This)->lpVtbl -> put_FriendlyName(This,sFriendlyName) )
     316
     317#define ISpy_OpenGraphStudioNext(This,nParentWindowHandle,pbResult)     \
     318    ( (This)->lpVtbl -> OpenGraphStudioNext(This,nParentWindowHandle,pbResult) )
     319
     320#define ISpy_OpenGraphEdit(This,nParentWindowHandle,pbResult)   \
     321    ( (This)->lpVtbl -> OpenGraphEdit(This,nParentWindowHandle,pbResult) )
    298322
    299323#endif /* COBJMACROS */
     
    557581            /* [in] */ LONG nParentWindowHandle) = 0;
    558582       
     583        virtual /* [id] */ HRESULT STDMETHODCALLTYPE DoFilterGraphListModal(
     584            /* [in] */ LONG nParentWindowHandle) = 0;
     585       
     586        virtual /* [id] */ HRESULT STDMETHODCALLTYPE OpenGraphStudioNext(
     587            /* [in] */ LONG nParentWindowHandle,
     588            /* [in] */ BSTR sMonikerDisplayName,
     589            /* [retval][out] */ VARIANT_BOOL *pbResult) = 0;
     590       
     591        virtual /* [id] */ HRESULT STDMETHODCALLTYPE OpenGraphEdit(
     592            /* [in] */ LONG nParentWindowHandle,
     593            /* [in] */ BSTR sMonikerDisplayName,
     594            /* [retval][out] */ VARIANT_BOOL *pbResult) = 0;
     595       
    559596    };
    560597   
     
    622659            /* [in] */ LONG nParentWindowHandle);
    623660       
     661        /* [id] */ HRESULT ( STDMETHODCALLTYPE *DoFilterGraphListModal )(
     662            IFilterGraphHelper * This,
     663            /* [in] */ LONG nParentWindowHandle);
     664       
     665        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OpenGraphStudioNext )(
     666            IFilterGraphHelper * This,
     667            /* [in] */ LONG nParentWindowHandle,
     668            /* [in] */ BSTR sMonikerDisplayName,
     669            /* [retval][out] */ VARIANT_BOOL *pbResult);
     670       
     671        /* [id] */ HRESULT ( STDMETHODCALLTYPE *OpenGraphEdit )(
     672            IFilterGraphHelper * This,
     673            /* [in] */ LONG nParentWindowHandle,
     674            /* [in] */ BSTR sMonikerDisplayName,
     675            /* [retval][out] */ VARIANT_BOOL *pbResult);
     676       
    624677        END_INTERFACE
    625678    } IFilterGraphHelperVtbl;
     
    669722#define IFilterGraphHelper_DoPropertyFrameModal(This,nParentWindowHandle)       \
    670723    ( (This)->lpVtbl -> DoPropertyFrameModal(This,nParentWindowHandle) )
     724
     725#define IFilterGraphHelper_DoFilterGraphListModal(This,nParentWindowHandle)     \
     726    ( (This)->lpVtbl -> DoFilterGraphListModal(This,nParentWindowHandle) )
     727
     728#define IFilterGraphHelper_OpenGraphStudioNext(This,nParentWindowHandle,sMonikerDisplayName,pbResult)   \
     729    ( (This)->lpVtbl -> OpenGraphStudioNext(This,nParentWindowHandle,sMonikerDisplayName,pbResult) )
     730
     731#define IFilterGraphHelper_OpenGraphEdit(This,nParentWindowHandle,sMonikerDisplayName,pbResult) \
     732    ( (This)->lpVtbl -> OpenGraphEdit(This,nParentWindowHandle,sMonikerDisplayName,pbResult) )
    671733
    672734#endif /* COBJMACROS */
  • trunk/DirectShowSpy/DirectShowSpy_p.c

    r242 r247  
    55
    66 /* File created by MIDL compiler version 7.00.0555 */
    7 /* at Sat Jan 11 18:11:25 2014
     7/* at Sun Jan 12 11:51:42 2014
    88 */
    99/* Compiler settings for DirectShowSpy.idl:
     
    5050#include "DirectShowSpy_i.h"
    5151
    52 #define TYPE_FORMAT_STRING_SIZE   83                               
    53 #define PROC_FORMAT_STRING_SIZE   253                               
     52#define TYPE_FORMAT_STRING_SIZE   87                               
     53#define PROC_FORMAT_STRING_SIZE   469                               
    5454#define EXPR_FORMAT_STRING_SIZE   1                                 
    5555#define TRANSMIT_AS_TABLE_SIZE    0           
     
    261261                        0x0,            /* 0 */
    262262
    263         /* Procedure get_FilterGraph */
     263        /* Procedure OpenGraphStudioNext */
    264264
    265265/* 144 */       0x33,           /* FC_AUTO_HANDLE */
    266266                        0x6c,           /* Old Flags:  object, Oi2 */
    267267/* 146 */       NdrFcLong( 0x0 ),       /* 0 */
    268 /* 150 */       NdrFcShort( 0x7 ),      /* 7 */
    269 /* 152 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
    270 /* 154 */       NdrFcShort( 0x0 ),      /* 0 */
    271 /* 156 */       NdrFcShort( 0x8 ),      /* 8 */
    272 /* 158 */       0x45,           /* Oi2 Flags:  srv must size, has return, has ext, */
    273                         0x2,            /* 2 */
     268/* 150 */       NdrFcShort( 0xb ),      /* 11 */
     269/* 152 */       NdrFcShort( 0x10 ),     /* x86 Stack size/offset = 16 */
     270/* 154 */       NdrFcShort( 0x8 ),      /* 8 */
     271/* 156 */       NdrFcShort( 0x22 ),     /* 34 */
     272/* 158 */       0x44,           /* Oi2 Flags: has return, has ext, */
     273                        0x3,            /* 3 */
    274274/* 160 */       0x8,            /* 8 */
    275275                        0x1,            /* Ext Flags:  new corr desc, */
     
    278278/* 166 */       NdrFcShort( 0x0 ),      /* 0 */
    279279
     280        /* Parameter nParentWindowHandle */
     281
     282/* 168 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
     283/* 170 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     284/* 172 */       0x8,            /* FC_LONG */
     285                        0x0,            /* 0 */
     286
     287        /* Parameter pbResult */
     288
     289/* 174 */       NdrFcShort( 0x2150 ),   /* Flags:  out, base type, simple ref, srv alloc size=8 */
     290/* 176 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     291/* 178 */       0x6,            /* FC_SHORT */
     292                        0x0,            /* 0 */
     293
     294        /* Return value */
     295
     296/* 180 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     297/* 182 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     298/* 184 */       0x8,            /* FC_LONG */
     299                        0x0,            /* 0 */
     300
     301        /* Procedure OpenGraphEdit */
     302
     303/* 186 */       0x33,           /* FC_AUTO_HANDLE */
     304                        0x6c,           /* Old Flags:  object, Oi2 */
     305/* 188 */       NdrFcLong( 0x0 ),       /* 0 */
     306/* 192 */       NdrFcShort( 0xc ),      /* 12 */
     307/* 194 */       NdrFcShort( 0x10 ),     /* x86 Stack size/offset = 16 */
     308/* 196 */       NdrFcShort( 0x8 ),      /* 8 */
     309/* 198 */       NdrFcShort( 0x22 ),     /* 34 */
     310/* 200 */       0x44,           /* Oi2 Flags:  has return, has ext, */
     311                        0x3,            /* 3 */
     312/* 202 */       0x8,            /* 8 */
     313                        0x1,            /* Ext Flags:  new corr desc, */
     314/* 204 */       NdrFcShort( 0x0 ),      /* 0 */
     315/* 206 */       NdrFcShort( 0x0 ),      /* 0 */
     316/* 208 */       NdrFcShort( 0x0 ),      /* 0 */
     317
     318        /* Parameter nParentWindowHandle */
     319
     320/* 210 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
     321/* 212 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     322/* 214 */       0x8,            /* FC_LONG */
     323                        0x0,            /* 0 */
     324
     325        /* Parameter pbResult */
     326
     327/* 216 */       NdrFcShort( 0x2150 ),   /* Flags:  out, base type, simple ref, srv alloc size=8 */
     328/* 218 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     329/* 220 */       0x6,            /* FC_SHORT */
     330                        0x0,            /* 0 */
     331
     332        /* Return value */
     333
     334/* 222 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     335/* 224 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     336/* 226 */       0x8,            /* FC_LONG */
     337                        0x0,            /* 0 */
     338
     339        /* Procedure get_FilterGraph */
     340
     341/* 228 */       0x33,           /* FC_AUTO_HANDLE */
     342                        0x6c,           /* Old Flags:  object, Oi2 */
     343/* 230 */       NdrFcLong( 0x0 ),       /* 0 */
     344/* 234 */       NdrFcShort( 0x7 ),      /* 7 */
     345/* 236 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     346/* 238 */       NdrFcShort( 0x0 ),      /* 0 */
     347/* 240 */       NdrFcShort( 0x8 ),      /* 8 */
     348/* 242 */       0x45,           /* Oi2 Flags:  srv must size, has return, has ext, */
     349                        0x2,            /* 2 */
     350/* 244 */       0x8,            /* 8 */
     351                        0x1,            /* Ext Flags:  new corr desc, */
     352/* 246 */       NdrFcShort( 0x0 ),      /* 0 */
     353/* 248 */       NdrFcShort( 0x0 ),      /* 0 */
     354/* 250 */       NdrFcShort( 0x0 ),      /* 0 */
     355
    280356        /* Parameter ppFilterGraphUnknown */
    281357
    282 /* 168 */       NdrFcShort( 0x13 ),     /* Flags:  must size, must free, out, */
    283 /* 170 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
    284 /* 172 */       NdrFcShort( 0x3c ),     /* Type Offset=60 */
    285 
    286         /* Return value */
    287 
    288 /* 174 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
    289 /* 176 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
    290 /* 178 */       0x8,            /* FC_LONG */
     358/* 252 */       NdrFcShort( 0x13 ),     /* Flags:  must size, must free, out, */
     359/* 254 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     360/* 256 */       NdrFcShort( 0x40 ),     /* Type Offset=64 */
     361
     362        /* Return value */
     363
     364/* 258 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     365/* 260 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     366/* 262 */       0x8,            /* FC_LONG */
    291367                        0x0,            /* 0 */
    292368
    293369        /* Procedure put_FilterGraph */
    294370
    295 /* 180 */       0x33,           /* FC_AUTO_HANDLE */
    296                         0x6c,           /* Old Flags:  object, Oi2 */
    297 /* 182 */       NdrFcLong( 0x0 ),       /* 0 */
    298 /* 186 */       NdrFcShort( 0x8 ),      /* 8 */
    299 /* 188 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
    300 /* 190 */       NdrFcShort( 0x0 ),      /* 0 */
    301 /* 192 */       NdrFcShort( 0x8 ),      /* 8 */
    302 /* 194 */       0x46,           /* Oi2 Flags:  clt must size, has return, has ext, */
     371/* 264 */       0x33,           /* FC_AUTO_HANDLE */
     372                        0x6c,           /* Old Flags:  object, Oi2 */
     373/* 266 */       NdrFcLong( 0x0 ),       /* 0 */
     374/* 270 */       NdrFcShort( 0x8 ),      /* 8 */
     375/* 272 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     376/* 274 */       NdrFcShort( 0x0 ),      /* 0 */
     377/* 276 */       NdrFcShort( 0x8 ),      /* 8 */
     378/* 278 */       0x46,           /* Oi2 Flags:  clt must size, has return, has ext, */
    303379                        0x2,            /* 2 */
    304 /* 196 */       0x8,            /* 8 */
     380/* 280 */       0x8,            /* 8 */
    305381                        0x1,            /* Ext Flags:  new corr desc, */
    306 /* 198 */       NdrFcShort( 0x0 ),      /* 0 */
    307 /* 200 */       NdrFcShort( 0x0 ),      /* 0 */
    308 /* 202 */       NdrFcShort( 0x0 ),      /* 0 */
     382/* 282 */       NdrFcShort( 0x0 ),      /* 0 */
     383/* 284 */       NdrFcShort( 0x0 ),      /* 0 */
     384/* 286 */       NdrFcShort( 0x0 ),      /* 0 */
    309385
    310386        /* Parameter pFilterGraphUnknown */
    311387
    312 /* 204 */       NdrFcShort( 0xb ),      /* Flags:  must size, must free, in, */
    313 /* 206 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
    314 /* 208 */       NdrFcShort( 0x40 ),     /* Type Offset=64 */
    315 
    316         /* Return value */
    317 
    318 /* 210 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
    319 /* 212 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
    320 /* 214 */       0x8,            /* FC_LONG */
     388/* 288 */       NdrFcShort( 0xb ),      /* Flags:  must size, must free, in, */
     389/* 290 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     390/* 292 */       NdrFcShort( 0x44 ),     /* Type Offset=68 */
     391
     392        /* Return value */
     393
     394/* 294 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     395/* 296 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     396/* 298 */       0x8,            /* FC_LONG */
    321397                        0x0,            /* 0 */
    322398
    323399        /* Procedure DoPropertyFrameModal */
    324400
    325 /* 216 */       0x33,           /* FC_AUTO_HANDLE */
    326                         0x6c,           /* Old Flags:  object, Oi2 */
    327 /* 218 */       NdrFcLong( 0x0 ),       /* 0 */
    328 /* 222 */       NdrFcShort( 0xa ),      /* 10 */
    329 /* 224 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
    330 /* 226 */       NdrFcShort( 0x8 ),      /* 8 */
    331 /* 228 */       NdrFcShort( 0x8 ),      /* 8 */
    332 /* 230 */       0x44,           /* Oi2 Flags:  has return, has ext, */
     401/* 300 */       0x33,           /* FC_AUTO_HANDLE */
     402                        0x6c,           /* Old Flags:  object, Oi2 */
     403/* 302 */       NdrFcLong( 0x0 ),       /* 0 */
     404/* 306 */       NdrFcShort( 0xa ),      /* 10 */
     405/* 308 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     406/* 310 */       NdrFcShort( 0x8 ),      /* 8 */
     407/* 312 */       NdrFcShort( 0x8 ),      /* 8 */
     408/* 314 */       0x44,           /* Oi2 Flags:  has return, has ext, */
    333409                        0x2,            /* 2 */
    334 /* 232 */       0x8,            /* 8 */
     410/* 316 */       0x8,            /* 8 */
    335411                        0x1,            /* Ext Flags:  new corr desc, */
    336 /* 234 */       NdrFcShort( 0x0 ),      /* 0 */
    337 /* 236 */       NdrFcShort( 0x0 ),      /* 0 */
    338 /* 238 */       NdrFcShort( 0x0 ),      /* 0 */
     412/* 318 */       NdrFcShort( 0x0 ),      /* 0 */
     413/* 320 */       NdrFcShort( 0x0 ),      /* 0 */
     414/* 322 */       NdrFcShort( 0x0 ),      /* 0 */
    339415
    340416        /* Parameter nParentWindowHandle */
    341417
    342 /* 240 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
    343 /* 242 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
    344 /* 244 */       0x8,            /* FC_LONG */
    345                         0x0,            /* 0 */
    346 
    347         /* Return value */
    348 
    349 /* 246 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
    350 /* 248 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
    351 /* 250 */       0x8,            /* FC_LONG */
     418/* 324 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
     419/* 326 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     420/* 328 */       0x8,            /* FC_LONG */
     421                        0x0,            /* 0 */
     422
     423        /* Return value */
     424
     425/* 330 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     426/* 332 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     427/* 334 */       0x8,            /* FC_LONG */
     428                        0x0,            /* 0 */
     429
     430        /* Procedure DoFilterGraphListModal */
     431
     432/* 336 */       0x33,           /* FC_AUTO_HANDLE */
     433                        0x6c,           /* Old Flags:  object, Oi2 */
     434/* 338 */       NdrFcLong( 0x0 ),       /* 0 */
     435/* 342 */       NdrFcShort( 0xb ),      /* 11 */
     436/* 344 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     437/* 346 */       NdrFcShort( 0x8 ),      /* 8 */
     438/* 348 */       NdrFcShort( 0x8 ),      /* 8 */
     439/* 350 */       0x44,           /* Oi2 Flags:  has return, has ext, */
     440                        0x2,            /* 2 */
     441/* 352 */       0x8,            /* 8 */
     442                        0x1,            /* Ext Flags:  new corr desc, */
     443/* 354 */       NdrFcShort( 0x0 ),      /* 0 */
     444/* 356 */       NdrFcShort( 0x0 ),      /* 0 */
     445/* 358 */       NdrFcShort( 0x0 ),      /* 0 */
     446
     447        /* Parameter nParentWindowHandle */
     448
     449/* 360 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
     450/* 362 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     451/* 364 */       0x8,            /* FC_LONG */
     452                        0x0,            /* 0 */
     453
     454        /* Return value */
     455
     456/* 366 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     457/* 368 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     458/* 370 */       0x8,            /* FC_LONG */
     459                        0x0,            /* 0 */
     460
     461        /* Procedure OpenGraphStudioNext */
     462
     463/* 372 */       0x33,           /* FC_AUTO_HANDLE */
     464                        0x6c,           /* Old Flags:  object, Oi2 */
     465/* 374 */       NdrFcLong( 0x0 ),       /* 0 */
     466/* 378 */       NdrFcShort( 0xc ),      /* 12 */
     467/* 380 */       NdrFcShort( 0x14 ),     /* x86 Stack size/offset = 20 */
     468/* 382 */       NdrFcShort( 0x8 ),      /* 8 */
     469/* 384 */       NdrFcShort( 0x22 ),     /* 34 */
     470/* 386 */       0x46,           /* Oi2 Flags:  clt must size, has return, has ext, */
     471                        0x4,            /* 4 */
     472/* 388 */       0x8,            /* 8 */
     473                        0x5,            /* Ext Flags:  new corr desc, srv corr check, */
     474/* 390 */       NdrFcShort( 0x0 ),      /* 0 */
     475/* 392 */       NdrFcShort( 0x1 ),      /* 1 */
     476/* 394 */       NdrFcShort( 0x0 ),      /* 0 */
     477
     478        /* Parameter nParentWindowHandle */
     479
     480/* 396 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
     481/* 398 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     482/* 400 */       0x8,            /* FC_LONG */
     483                        0x0,            /* 0 */
     484
     485        /* Parameter sMonikerDisplayName */
     486
     487/* 402 */       NdrFcShort( 0x8b ),     /* Flags:  must size, must free, in, by val, */
     488/* 404 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     489/* 406 */       NdrFcShort( 0x32 ),     /* Type Offset=50 */
     490
     491        /* Parameter pbResult */
     492
     493/* 408 */       NdrFcShort( 0x2150 ),   /* Flags:  out, base type, simple ref, srv alloc size=8 */
     494/* 410 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     495/* 412 */       0x6,            /* FC_SHORT */
     496                        0x0,            /* 0 */
     497
     498        /* Return value */
     499
     500/* 414 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     501/* 416 */       NdrFcShort( 0x10 ),     /* x86 Stack size/offset = 16 */
     502/* 418 */       0x8,            /* FC_LONG */
     503                        0x0,            /* 0 */
     504
     505        /* Procedure OpenGraphEdit */
     506
     507/* 420 */       0x33,           /* FC_AUTO_HANDLE */
     508                        0x6c,           /* Old Flags:  object, Oi2 */
     509/* 422 */       NdrFcLong( 0x0 ),       /* 0 */
     510/* 426 */       NdrFcShort( 0xd ),      /* 13 */
     511/* 428 */       NdrFcShort( 0x14 ),     /* x86 Stack size/offset = 20 */
     512/* 430 */       NdrFcShort( 0x8 ),      /* 8 */
     513/* 432 */       NdrFcShort( 0x22 ),     /* 34 */
     514/* 434 */       0x46,           /* Oi2 Flags:  clt must size, has return, has ext, */
     515                        0x4,            /* 4 */
     516/* 436 */       0x8,            /* 8 */
     517                        0x5,            /* Ext Flags:  new corr desc, srv corr check, */
     518/* 438 */       NdrFcShort( 0x0 ),      /* 0 */
     519/* 440 */       NdrFcShort( 0x1 ),      /* 1 */
     520/* 442 */       NdrFcShort( 0x0 ),      /* 0 */
     521
     522        /* Parameter nParentWindowHandle */
     523
     524/* 444 */       NdrFcShort( 0x48 ),     /* Flags:  in, base type, */
     525/* 446 */       NdrFcShort( 0x4 ),      /* x86 Stack size/offset = 4 */
     526/* 448 */       0x8,            /* FC_LONG */
     527                        0x0,            /* 0 */
     528
     529        /* Parameter sMonikerDisplayName */
     530
     531/* 450 */       NdrFcShort( 0x8b ),     /* Flags:  must size, must free, in, by val, */
     532/* 452 */       NdrFcShort( 0x8 ),      /* x86 Stack size/offset = 8 */
     533/* 454 */       NdrFcShort( 0x32 ),     /* Type Offset=50 */
     534
     535        /* Parameter pbResult */
     536
     537/* 456 */       NdrFcShort( 0x2150 ),   /* Flags:  out, base type, simple ref, srv alloc size=8 */
     538/* 458 */       NdrFcShort( 0xc ),      /* x86 Stack size/offset = 12 */
     539/* 460 */       0x6,            /* FC_SHORT */
     540                        0x0,            /* 0 */
     541
     542        /* Return value */
     543
     544/* 462 */       NdrFcShort( 0x70 ),     /* Flags:  out, return, base type, */
     545/* 464 */       NdrFcShort( 0x10 ),     /* x86 Stack size/offset = 16 */
     546/* 466 */       0x8,            /* FC_LONG */
    352547                        0x0,            /* 0 */
    353548
     
    406601/* 58 */        NdrFcShort( 0xfff4 ),   /* Offset= -12 (46) */
    407602/* 60 */       
     603                        0x11, 0xc,      /* FC_RP [alloced_on_stack] [simple_pointer] */
     604/* 62 */        0x6,            /* FC_SHORT */
     605                        0x5c,           /* FC_PAD */
     606/* 64 */       
    408607                        0x11, 0x10,     /* FC_RP [pointer_deref] */
    409 /* 62 */        NdrFcShort( 0x2 ),      /* Offset= 2 (64) */
    410 /* 64 */       
     608/* 66 */        NdrFcShort( 0x2 ),      /* Offset= 2 (68) */
     609/* 68 */       
    411610                        0x2f,           /* FC_IP */
    412611                        0x5a,           /* FC_CONSTANT_IID */
    413 /* 66 */        NdrFcLong( 0x0 ),       /* 0 */
    414 /* 70 */        NdrFcShort( 0x0 ),      /* 0 */
    415 /* 72 */        NdrFcShort( 0x0 ),      /* 0 */
    416 /* 74 */        0xc0,           /* 192 */
    417                         0x0,            /* 0 */
    418 /* 76 */        0x0,            /* 0 */
    419                         0x0,            /* 0 */
    420 /* 78 */        0x0,            /* 0 */
     612/* 70 */        NdrFcLong( 0x0 ),       /* 0 */
     613/* 74 */        NdrFcShort( 0x0 ),      /* 0 */
     614/* 76 */        NdrFcShort( 0x0 ),      /* 0 */
     615/* 78 */        0xc0,           /* 192 */
    421616                        0x0,            /* 0 */
    422617/* 80 */        0x0,            /* 0 */
     618                        0x0,            /* 0 */
     619/* 82 */        0x0,            /* 0 */
     620                        0x0,            /* 0 */
     621/* 84 */        0x0,            /* 0 */
    423622                        0x46,           /* 70 */
    424623
     
    462661    36,
    463662    72,
    464     108
     663    108,
     664    144,
     665    186
    465666    };
    466667
     
    486687    0,
    487688    0};
    488 CINTERFACE_PROXY_VTABLE(11) _ISpyProxyVtbl =
     689CINTERFACE_PROXY_VTABLE(13) _ISpyProxyVtbl =
    489690{
    490691    &ISpy_ProxyInfo,
     
    500701    (void *) (INT_PTR) -1 /* ISpy::get_CreationTime */ ,
    501702    (void *) (INT_PTR) -1 /* ISpy::get_FriendlyName */ ,
    502     (void *) (INT_PTR) -1 /* ISpy::put_FriendlyName */
     703    (void *) (INT_PTR) -1 /* ISpy::put_FriendlyName */ ,
     704    (void *) (INT_PTR) -1 /* ISpy::OpenGraphStudioNext */ ,
     705    (void *) (INT_PTR) -1 /* ISpy::OpenGraphEdit */
    503706};
    504707
     
    510713    STUB_FORWARDING_FUNCTION,
    511714    STUB_FORWARDING_FUNCTION,
     715    NdrStubCall2,
     716    NdrStubCall2,
    512717    NdrStubCall2,
    513718    NdrStubCall2,
     
    520725    &IID_ISpy,
    521726    &ISpy_ServerInfo,
    522     11,
     727    13,
    523728    &ISpy_table[-3],
    524729    CStdStubBuffer_DELEGATING_METHODS
     
    668873    (unsigned short) -1,
    669874    (unsigned short) -1,
    670     144,
    671     180,
     875    228,
     876    264,
    672877    72,
    673     216
     878    300,
     879    336,
     880    372,
     881    420
    674882    };
    675883
     
    695903    0,
    696904    0};
    697 CINTERFACE_PROXY_VTABLE(11) _IFilterGraphHelperProxyVtbl =
     905CINTERFACE_PROXY_VTABLE(14) _IFilterGraphHelperProxyVtbl =
    698906{
    699907    &IFilterGraphHelper_ProxyInfo,
     
    709917    (void *) (INT_PTR) -1 /* IFilterGraphHelper::put_FilterGraph */ ,
    710918    (void *) (INT_PTR) -1 /* IFilterGraphHelper::get_Text */ ,
    711     (void *) (INT_PTR) -1 /* IFilterGraphHelper::DoPropertyFrameModal */
     919    (void *) (INT_PTR) -1 /* IFilterGraphHelper::DoPropertyFrameModal */ ,
     920    (void *) (INT_PTR) -1 /* IFilterGraphHelper::DoFilterGraphListModal */ ,
     921    (void *) (INT_PTR) -1 /* IFilterGraphHelper::OpenGraphStudioNext */ ,
     922    (void *) (INT_PTR) -1 /* IFilterGraphHelper::OpenGraphEdit */
    712923};
    713924
     
    719930    STUB_FORWARDING_FUNCTION,
    720931    STUB_FORWARDING_FUNCTION,
     932    NdrStubCall2,
     933    NdrStubCall2,
     934    NdrStubCall2,
    721935    NdrStubCall2,
    722936    NdrStubCall2,
     
    729943    &IID_IFilterGraphHelper,
    730944    &IFilterGraphHelper_ServerInfo,
    731     11,
     945    14,
    732946    &IFilterGraphHelper_table[-3],
    733947    CStdStubBuffer_DELEGATING_METHODS
  • trunk/DirectShowSpy/FilterGraphHelper.h

    r242 r247  
    1313
    1414INT_PTR DoFilterGraphListPropertySheetModal(HWND hParentWindow);
     15
     16HRESULT FilterGraphHelper_OpenGraphStudioNext(LONG nParentWindowHandle, LPCWSTR pszMonikerDisplayName, VARIANT_BOOL* pbResult);
     17HRESULT FilterGraphHelper_OpenGraphEdit(LONG nParentWindowHandle, LPCWSTR pszMonikerDisplayName, VARIANT_BOOL* pbResult);
    1518
    1619////////////////////////////////////////////////////////////
     
    6467                MSG_WM_INITDIALOG(OnInitDialog)
    6568                MSG_WM_DESTROY(OnDestroy)
     69                MSG_TVN_GETINFOTIP(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_TREE, OnTreeViewGetInfoTip)
    6670                MSG_TVN_SELCHANGED(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_TREE, OnTreeViewSelChanged)
    6771                MSG_TVN_ITEMEXPANDING(IDC_FILTERGRAPHHELPER_PROPERTYFRAME_TREE, OnTreeViewItemExplanding)
     
    258262                                        const BOOL bMonikerDisplayNameAvailable = !m_sFilterGraphMonikerDisplayName.IsEmpty();
    259263                                        m_OpenGsnButton.EnableWindow(bMonikerDisplayNameAvailable);
     264                                        m_OpenGsnDescriptionStatic.EnableWindow(bMonikerDisplayNameAvailable);
    260265                                        m_OpenGeButton.EnableWindow(bMonikerDisplayNameAvailable);
     266                                        m_OpenGeDescriptionStatic.EnableWindow(bMonikerDisplayNameAvailable);
    261267                                        m_bActivating = FALSE;
    262268                                }
     
    350356                        COMMAND_HANDLER_EX(IDC_FILTERGRAPHHELPER_EMAIL_BODY, EN_CHANGE, OnChanged)
    351357                        COMMAND_ID_HANDLER_EX(IDC_FILTERGRAPHHELPER_EMAIL_SEND, OnSend)
     358                        NOTIFY_HANDLER_EX(IDC_FILTERGRAPHHELPER_EMAIL_CLEANUP, CRoHyperStatic::NC_ANCHORCLICKED, OnCleanupStaticAnchorClicked)
    352359                        REFLECT_NOTIFICATIONS()
    353360                END_MSG_MAP()
     
    356363                        DLGRESIZE_CONTROL(IDC_FILTERGRAPHHELPER_EMAIL_BODY, DLSZ_SIZE_X | DLSZ_SIZE_Y)
    357364                        DLGRESIZE_CONTROL(IDC_FILTERGRAPHHELPER_EMAIL_SEND, DLSZ_MOVE_X | DLSZ_MOVE_Y)
     365                        DLGRESIZE_CONTROL(IDC_FILTERGRAPHHELPER_EMAIL_CLEANUP, DLSZ_MOVE_Y)
    358366                END_DLGRESIZE_MAP()
    359367
     
    371379                        CRoEdit m_BodyEdit;
    372380                        CButton m_SendButton;
     381                        CRoHyperStatic m_CleanupStatic;
    373382                        CString m_sFilterGraphText;
    374383                        CRoMapT<INT_PTR, BOOL> m_ChangeMap;
     
    591600                                        m_BodyEdit.SetFont(m_pOwner->m_TextFont);
    592601                                        m_SendButton = GetDlgItem(IDC_FILTERGRAPHHELPER_EMAIL_SEND);
     602                                        _W(m_CleanupStatic.SubclassWindow(GetDlgItem(IDC_FILTERGRAPHHELPER_EMAIL_CLEANUP)));
    593603                                        DlgResize_Init(FALSE, FALSE);
    594604                                        InitializeControlsFromRegistry();
     
    688698                                __C(pMessage->put_Subject(CComBSTR(sSubject)));
    689699                                __C(pMessage->Send());
     700                                _RegKeyHelper::SetStringValue(HKEY_CURRENT_USER, REGISTRY_ROOT, _T("Email Message Template"), CString(sMessageString));
     701                                AtlOptionalMessageBoxEx(m_hWnd, _T("CFilterGraphHelper::CPropertyFrameDialog::CEmailDialog::CredentialsSaved"), _T("The email was sent") _T("\r\n\r\n") _T("The credentials were written into registry for further reuse. Use Erase Cached Credentials link to delete them from registry."), IDS_INFORMATION, MB_ICONINFORMATION | MB_OK);
    690702                                MessageBeep(MB_OK);
    691                                 _RegKeyHelper::SetStringValue(HKEY_CURRENT_USER, REGISTRY_ROOT, _T("Email Message Template"), CString(sMessageString));
     703                                return 0;
     704                        }
     705                        LRESULT OnCleanupStaticAnchorClicked(NMHDR*)
     706                        {
     707                                _RegKeyHelper::DeleteValue(HKEY_CURRENT_USER, REGISTRY_ROOT, _T("Email Message Template"));
     708                                AtlOptionalMessageBoxEx(m_hWnd, _T("CFilterGraphHelper::CPropertyFrameDialog::CEmailDialog::SavedCredentialsDeleted"), _T("Cached email credentials are removed from registry."), IDS_INFORMATION, MB_ICONINFORMATION | MB_OK);
     709                                MessageBeep(MB_OK);
    692710                                return 0;
    693711                        }
     
    717735                        TYPE m_Type;
    718736                        CComPtr<IBaseFilter> m_pBaseFilter;
    719                         CLSID m_ClassIdentifier;
     737                        CLSID m_BaseFilterClassIdentifier;
     738                        CString m_sBaseFilterClassDescription;
     739                        CString m_sBaseFilterModulePath;
     740                        CLSID m_PropertyPageClassIdentifier;
    720741                        CComPtr<IPropertyPage> m_pPropertyPage;
    721742                        CObjectPtr<CPropertyPageSite> m_pSite;
     
    726747                        CData(TYPE Type = TYPE_UNKNOWN) :
    727748                                m_Type(Type),
    728                                 m_ClassIdentifier(CLSID_NULL)
     749                                m_BaseFilterClassIdentifier(CLSID_NULL),
     750                                m_PropertyPageClassIdentifier(CLSID_NULL)
    729751                        {
    730752                        }
     
    732754                                m_Type(TYPE_FILTER),
    733755                                m_pBaseFilter(pBaseFilter),
    734                                 m_ClassIdentifier(CLSID_NULL)
    735                         {
    736                         }
    737                         CData(IBaseFilter* pBaseFilter, const CLSID& ClassIdentifier, IPropertyPage* pPropertyPage) :
     756                                m_BaseFilterClassIdentifier(CLSID_NULL),
     757                                m_PropertyPageClassIdentifier(CLSID_NULL)
     758                        {
     759                                _ATLTRY
     760                                {
     761                                        CLSID ClassIdentifier = CLSID_NULL;
     762                                        if(SUCCEEDED(pBaseFilter->GetClassID(&ClassIdentifier)) && ClassIdentifier != CLSID_NULL)
     763                                        {
     764                                                m_BaseFilterClassIdentifier = ClassIdentifier;
     765                                                const CString sClassIdentifier(_PersistHelper::StringFromIdentifier(ClassIdentifier));
     766                                                m_sBaseFilterClassDescription = _RegKeyHelper::QueryStringValue(HKEY_CLASSES_ROOT, AtlFormatString(_T("CLSID\\%s"), sClassIdentifier));
     767                                                m_sBaseFilterModulePath = _RegKeyHelper::QueryStringValue(HKEY_CLASSES_ROOT, AtlFormatString(_T("CLSID\\%s\\InprocServer32"), sClassIdentifier));
     768                                        }
     769                                }
     770                                _ATLCATCHALL()
     771                                {
     772                                        _Z_EXCEPTION();
     773                                }
     774                        }
     775                        CData(IBaseFilter* pBaseFilter, const CLSID& PropertyPageClassIdentifier, IPropertyPage* pPropertyPage) :
    738776                                m_Type(TYPE_FILTERPROPERTYPAGE),
    739777                                m_pBaseFilter(pBaseFilter),
    740                                 m_ClassIdentifier(ClassIdentifier),
     778                                m_BaseFilterClassIdentifier(CLSID_NULL),
     779                                m_PropertyPageClassIdentifier(PropertyPageClassIdentifier),
    741780                                m_pPropertyPage(pPropertyPage),
    742781                                m_bSiteActivated(FALSE)
     
    815854                        {
    816855                                const CComPtr<IBaseFilter>& pBaseFilter = FilterArray[nIndex];
    817                                 CTreeItem FilterItem = m_TreeView.InsertItem(FiltersItem, PreviousFilterItem, CData(pBaseFilter), CString(_FilterGraphHelper::GetFilterName(pBaseFilter)));
     856                                CData Data(pBaseFilter);
     857                                CString sText(_FilterGraphHelper::GetFilterName(pBaseFilter));
     858                                if(!Data.m_sBaseFilterClassDescription.IsEmpty() && sText.Find(Data.m_sBaseFilterClassDescription) < 0)
     859                                        sText += AtlFormatString(_T(" (%s)"), Data.m_sBaseFilterClassDescription);
     860                                CTreeItem FilterItem = m_TreeView.InsertItem(FiltersItem, PreviousFilterItem, Data, sText);
    818861                                PreviousFilterItem = FilterItem;
    819862                                #pragma region Property Page
     
    9831026                                Data.m_pSite->Terminate();
    9841027                        }
     1028                        #pragma endregion
     1029                        return 0;
     1030                }
     1031                LRESULT OnTreeViewGetInfoTip(NMTVGETINFOTIP* pHeader)
     1032                {
     1033                        _A(pHeader);
     1034                        if(!pHeader->hItem)
     1035                                return 0;
     1036                        CData& Data = m_TreeView.GetItemData(pHeader->hItem);
     1037                        CString sInfoTip;
     1038                        if(Data.m_pBaseFilter)
     1039                        {
     1040                                if(!Data.m_pPropertyPage)
     1041                                {
     1042                                        sInfoTip.AppendFormat(_T("Name: %ls") _T("\r\n"), _FilterGraphHelper::GetFilterName(Data.m_pBaseFilter));
     1043                                        if(Data.m_BaseFilterClassIdentifier != CLSID_NULL)
     1044                                                sInfoTip.AppendFormat(_T("Class Identifier: %ls") _T("\r\n"), _PersistHelper::StringFromIdentifier(Data.m_BaseFilterClassIdentifier));
     1045                                        if(!Data.m_sBaseFilterClassDescription.IsEmpty())
     1046                                                sInfoTip.AppendFormat(_T("Class Description: %s") _T("\r\n"), Data.m_sBaseFilterClassDescription);
     1047                                        if(!Data.m_sBaseFilterModulePath.IsEmpty())
     1048                                                sInfoTip.AppendFormat(_T("Module Path: %s") _T("\r\n"), Data.m_sBaseFilterModulePath);
     1049                                } else
     1050                                {
     1051                                        // TODO: ...
     1052                                }
     1053                        }
     1054                        sInfoTip.TrimRight(_T("\t\n\r "));
     1055                        _tcsncpy_s(pHeader->pszText, pHeader->cchTextMax, sInfoTip, _TRUNCATE);
     1056                        #pragma region Clipboard Copy
     1057                        if(GetKeyState(VK_CONTROL) < 0 && GetKeyState(VK_SHIFT) < 0)
     1058                                _ATLTRY
     1059                                {
     1060                                        SetClipboardText(m_hWnd, sInfoTip);
     1061                                        MessageBeep(MB_OK);
     1062                                }
     1063                                _ATLCATCHALL()
     1064                                {
     1065                                        _Z_EXCEPTION();
     1066                                        MessageBeep(MB_ICONERROR);
     1067                                }
    9851068                        #pragma endregion
    9861069                        return 0;
     
    20912174        STDMETHOD(DoPropertyFrameModal)(LONG nParentWindowHandle)
    20922175        {
    2093                 _Z4(atlTraceCOM, 4, _T("...\n"));
     2176                _Z4(atlTraceCOM, 4, _T("nParentWindowHandle 0x%08X\n"), nParentWindowHandle);
    20942177                _ATLTRY
    20952178                {
     
    20972180                        if(!ParentWindow)
    20982181                                ParentWindow = GetActiveWindow();
    2099                         __D(!ParentWindow || ParentWindow.IsWindow(), E_INVALIDARG);
     2182                        //__D(!ParentWindow || ParentWindow.IsWindow(), E_INVALIDARG);
    21002183                        const CComQIPtr<IFilterGraph2> pFilterGraph2 = GetFilterGraph();
    21012184                        __D(pFilterGraph2, E_NOINTERFACE);
     
    21092192                return S_OK;
    21102193        }
     2194        STDMETHOD(DoFilterGraphListModal)(LONG nParentWindowHandle)
     2195        {
     2196                _Z4(atlTraceCOM, 4, _T("nParentWindowHandle 0x%08X\n"), nParentWindowHandle);
     2197                _ATLTRY
     2198                {
     2199                        CWindow ParentWindow = (HWND) (LONG_PTR) nParentWindowHandle;
     2200                        if(!ParentWindow)
     2201                                ParentWindow = GetActiveWindow();
     2202                        //__D(!ParentWindow || ParentWindow.IsWindow(), E_INVALIDARG);
     2203                        DoFilterGraphListPropertySheetModal(ParentWindow);
     2204                }
     2205                _ATLCATCH(Exception)
     2206                {
     2207                        _C(Exception);
     2208                }
     2209                return S_OK;
     2210        }
     2211        STDMETHOD(OpenGraphStudioNext)(LONG nParentWindowHandle, BSTR sMonikerDisplayName, VARIANT_BOOL* pbResult)
     2212        {
     2213                _Z4(atlTraceCOM, 4, _T("nParentWindowHandle 0x%08X, sMonikerDisplayName \"%s\"\n"), nParentWindowHandle, CString(sMonikerDisplayName));
     2214                _ATLTRY
     2215                {
     2216                        __D(sMonikerDisplayName && *sMonikerDisplayName, E_INVALIDARG);
     2217                        CWindow ParentWindow = (HWND) (LONG_PTR) nParentWindowHandle;
     2218                        if(!ParentWindow)
     2219                                ParentWindow = GetActiveWindow();
     2220                        //__D(!ParentWindow || ParentWindow.IsWindow(), E_INVALIDARG);
     2221                        const BOOL bResult = OpenMonikerWithGsn(sMonikerDisplayName, ParentWindow);
     2222                        if(pbResult)
     2223                                *pbResult = bResult ? ATL_VARIANT_TRUE : ATL_VARIANT_FALSE;
     2224                }
     2225                _ATLCATCH(Exception)
     2226                {
     2227                        _C(Exception);
     2228                }
     2229                return S_OK;
     2230        }
     2231        STDMETHOD(OpenGraphEdit)(LONG nParentWindowHandle, BSTR sMonikerDisplayName, VARIANT_BOOL* pbResult)
     2232        {
     2233                _Z4(atlTraceCOM, 4, _T("nParentWindowHandle 0x%08X, sMonikerDisplayName \"%s\"\n"), nParentWindowHandle, CString(sMonikerDisplayName));
     2234                _ATLTRY
     2235                {
     2236                        __D(sMonikerDisplayName && *sMonikerDisplayName, E_INVALIDARG);
     2237                        CWindow ParentWindow = (HWND) (LONG_PTR) nParentWindowHandle;
     2238                        if(!ParentWindow)
     2239                                ParentWindow = GetActiveWindow();
     2240                        //__D(!ParentWindow || ParentWindow.IsWindow(), E_INVALIDARG);
     2241                        const BOOL bResult = OpenMonikerWithGe(sMonikerDisplayName, ParentWindow);
     2242                        if(pbResult)
     2243                                *pbResult = bResult ? ATL_VARIANT_TRUE : ATL_VARIANT_FALSE;
     2244                }
     2245                _ATLCATCH(Exception)
     2246                {
     2247                        _C(Exception);
     2248                }
     2249                return S_OK;
     2250        }
    21112251};
    21122252
    21132253OBJECT_ENTRY_AUTO(__uuidof(FilterGraphHelper), CFilterGraphHelper)
     2254
     2255inline HRESULT FilterGraphHelper_OpenGraphStudioNext(LONG nParentWindowHandle, LPCWSTR pszMonikerDisplayName, VARIANT_BOOL* pbResult)
     2256{
     2257        CLocalObjectPtr<CFilterGraphHelper> pFilterGraphHelper;
     2258        return pFilterGraphHelper->OpenGraphStudioNext(nParentWindowHandle, CComBSTR(pszMonikerDisplayName), pbResult);
     2259}
     2260inline HRESULT FilterGraphHelper_OpenGraphEdit(LONG nParentWindowHandle, LPCWSTR pszMonikerDisplayName, VARIANT_BOOL* pbResult)
     2261{
     2262        CLocalObjectPtr<CFilterGraphHelper> pFilterGraphHelper;
     2263        return pFilterGraphHelper->OpenGraphEdit(nParentWindowHandle, CComBSTR(pszMonikerDisplayName), pbResult);
     2264}
  • trunk/DirectShowSpy/FilterGraphSpy.h

    r242 r247  
    88#include "DirectShowSpy_i.h"
    99#include "Common.h"
     10
     11HRESULT FilterGraphHelper_OpenGraphStudioNext(LONG nParentWindowHandle, LPCWSTR pszMonikerDisplayName, VARIANT_BOOL* pbResult);
     12HRESULT FilterGraphHelper_OpenGraphEdit(LONG nParentWindowHandle, LPCWSTR pszMonikerDisplayName, VARIANT_BOOL* pbResult);
    1013
    1114////////////////////////////////////////////////////////////
     
    585588                return FALSE;
    586589        }
     590        CStringW GetMonikerDisplayName() const
     591        {
     592                CRoCriticalSectionLock DataLock(m_DataCriticalSection);
     593                return m_sMonikerDisplayName;
     594        }
    587595
    588596// ISpy
     
    593601                {
    594602                        __D(psMonikerDisplayName, E_POINTER);
    595                         CRoCriticalSectionLock DataLock(m_DataCriticalSection);
    596                         *psMonikerDisplayName = CComBSTR(m_sMonikerDisplayName).Detach();
     603                        *psMonikerDisplayName = CComBSTR(GetMonikerDisplayName()).Detach();
    597604                }
    598605                _ATLCATCHALL()
     
    644651                        CRoCriticalSectionLock DataLock(m_DataCriticalSection);
    645652                        m_sFriendlyName = sFriendlyName;
     653                }
     654                _ATLCATCHALL()
     655                {
     656                        _Z_EXCEPTION();
     657                }
     658                return S_OK;
     659        }
     660        STDMETHOD(OpenGraphStudioNext)(LONG nParentWindowHandle, VARIANT_BOOL* pbResult)
     661        {
     662                _Z4(atlTraceCOM, 4, _T("this 0x%p, nParentWindowHandle 0x%08X\n"), this, nParentWindowHandle);
     663                _ATLTRY
     664                {
     665                        return FilterGraphHelper_OpenGraphStudioNext(nParentWindowHandle, GetMonikerDisplayName(), pbResult);
     666                }
     667                _ATLCATCHALL()
     668                {
     669                        _Z_EXCEPTION();
     670                }
     671                return S_OK;
     672        }
     673        STDMETHOD(OpenGraphEdit)(LONG nParentWindowHandle, VARIANT_BOOL* pbResult)
     674        {
     675                _Z4(atlTraceCOM, 4, _T("this 0x%p, nParentWindowHandle 0x%08X\n"), this, nParentWindowHandle);
     676                _ATLTRY
     677                {
     678                        return FilterGraphHelper_OpenGraphEdit(nParentWindowHandle, GetMonikerDisplayName(), pbResult);
    646679                }
    647680                _ATLCATCHALL()
  • trunk/DirectShowSpy/resource.h

    r242 r247  
    7878#define IDC_FILTERGRAPHHELPER_EMAIL_BODY 1608
    7979#define IDC_FILTERGRAPHHELPER_EMAIL_SEND 1609
     80#define IDC_FILTERGRAPHHELPER_EMAIL_CLEANUP 1610
    8081#define IDD_FILTERGRAPHHELPER_ACTION    1700
    8182#define IDC_FILTERGRAPHHELPER_ACTION_TITLE 1701
     
    111112#define _APS_NEXT_RESOURCE_VALUE        211
    112113#define _APS_NEXT_COMMAND_VALUE         32781
    113 #define _APS_NEXT_CONTROL_VALUE         228
     114#define _APS_NEXT_CONTROL_VALUE         229
    114115#define _APS_NEXT_SYMED_VALUE           103
    115116#endif
Note: See TracChangeset for help on using the changeset viewer.