Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

875 lines
23 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // ActiveScriptSite.cpp
  7. //
  8. // Description:
  9. // CActiveScript class implementation.
  10. //
  11. // Maintained By:
  12. // gpease 08-FEB-2000
  13. //
  14. //////////////////////////////////////////////////////////////////////////////
  15. #include "pch.h"
  16. #include "ResourceObject.h"
  17. #include "ActiveScriptSite.h"
  18. DEFINE_THISCLASS( "CActiveScriptSite" );
  19. //////////////////////////////////////////////////////////////////////
  20. //
  21. // Constructor
  22. //
  23. //////////////////////////////////////////////////////////////////////
  24. CActiveScriptSite::CActiveScriptSite(
  25. RESOURCE_HANDLE hResourceIn,
  26. PLOG_EVENT_ROUTINE plerIn,
  27. HKEY hkeyIn,
  28. LPCWSTR pszNameIn
  29. ) :
  30. m_hResource( hResourceIn ),
  31. m_pler( plerIn ),
  32. m_hkey( hkeyIn ),
  33. m_pszName( pszNameIn )
  34. {
  35. TraceClsFunc( "CActiveScriptSite\n" );
  36. Assert( m_cRef == 0 );
  37. Assert( m_punkResource == 0 );
  38. AddRef( );
  39. TraceFuncExit( );
  40. }
  41. //////////////////////////////////////////////////////////////////////
  42. //
  43. // Destructor
  44. //
  45. //////////////////////////////////////////////////////////////////////
  46. CActiveScriptSite::~CActiveScriptSite()
  47. {
  48. TraceClsFunc( "~CActiveScriptSite\n" );
  49. // Don't close m_hkey.
  50. // Don't free m_pszName
  51. if ( m_punkResource != NULL )
  52. {
  53. m_punkResource->Release( );
  54. }
  55. TraceFuncExit( );
  56. }
  57. //****************************************************************************
  58. //
  59. // IUnknown
  60. //
  61. //****************************************************************************
  62. //////////////////////////////////////////////////////////////////////////////
  63. //
  64. // STDMETHODIMP
  65. // CScriptResource::[IUnknown] QueryInterface(
  66. // REFIID riid,
  67. // LPVOID * ppv
  68. // )
  69. //
  70. //////////////////////////////////////////////////////////////////////////////
  71. STDMETHODIMP
  72. CActiveScriptSite::QueryInterface(
  73. REFIID riid,
  74. void** ppUnk
  75. )
  76. {
  77. TraceClsFunc( "[IUnknown] QueryInterface( )\n" );
  78. HRESULT hr = E_NOINTERFACE;
  79. *ppUnk = NULL;
  80. if ( riid == IID_IUnknown )
  81. {
  82. *ppUnk = TraceInterface( __THISCLASS__, IUnknown, (IActiveScriptSite*) this, 0 );
  83. hr = S_OK;
  84. }
  85. else if ( riid == IID_IActiveScriptSite )
  86. {
  87. *ppUnk = TraceInterface( __THISCLASS__, IActiveScriptSite, (IActiveScriptSite*) this, 0 );
  88. hr = S_OK;
  89. }
  90. else if ( riid == IID_IActiveScriptSiteInterruptPoll )
  91. {
  92. *ppUnk = TraceInterface( __THISCLASS__, IActiveScriptSiteInterruptPoll, (IActiveScriptSiteInterruptPoll*) this, 0 );
  93. hr = S_OK;
  94. }
  95. else if ( riid == IID_IActiveScriptSiteWindow )
  96. {
  97. *ppUnk = TraceInterface( __THISCLASS__, IActiveScriptSiteWindow, (IActiveScriptSiteWindow*) this, 0 );
  98. hr = S_OK;
  99. }
  100. else if ( riid == IID_IDispatchEx )
  101. {
  102. *ppUnk = TraceInterface( __THISCLASS__, IDispatchEx, (IDispatchEx*) this, 0 );
  103. hr = S_OK;
  104. }
  105. else if ( riid == IID_IDispatch )
  106. {
  107. *ppUnk = TraceInterface( __THISCLASS__, IDispatch, (IDispatchEx*) this, 0 );
  108. hr = S_OK;
  109. }
  110. if ( hr == S_OK )
  111. {
  112. ((IUnknown *) *ppUnk)->AddRef( );
  113. }
  114. QIRETURN( hr, riid );
  115. }
  116. //////////////////////////////////////////////////////////////////////////////
  117. //
  118. // STDMETHODIMP_( ULONG )
  119. // CScriptResource::[IUnknown] AddRef( void )
  120. //
  121. //////////////////////////////////////////////////////////////////////////////
  122. STDMETHODIMP_(ULONG)
  123. CActiveScriptSite::AddRef( )
  124. {
  125. TraceClsFunc( "[IUnknown] AddRef( )\n" );
  126. InterlockedIncrement( &m_cRef );
  127. RETURN( m_cRef );
  128. }
  129. //////////////////////////////////////////////////////////////////////////////
  130. //
  131. // STDMETHODIMP_( ULONG )
  132. // CScriptResource::[IUnknown] Release( void )
  133. //
  134. //////////////////////////////////////////////////////////////////////////////
  135. STDMETHODIMP_(ULONG)
  136. CActiveScriptSite::Release( )
  137. {
  138. TraceClsFunc( "[IUnknown] Release( )\n" );
  139. InterlockedDecrement( &m_cRef );
  140. if ( m_cRef )
  141. RETURN( m_cRef );
  142. delete this;
  143. RETURN( 0 );
  144. }
  145. //****************************************************************************
  146. //
  147. // IActiveScriptSite
  148. //
  149. //****************************************************************************
  150. //////////////////////////////////////////////////////////////////////////////
  151. //
  152. // STDMETHODIMP
  153. // CActiveScriptSite::GetLCID(
  154. // LCID *plcid // out
  155. // )
  156. //
  157. //////////////////////////////////////////////////////////////////////////////
  158. STDMETHODIMP
  159. CActiveScriptSite::GetLCID(
  160. LCID *plcid // out
  161. )
  162. {
  163. TraceClsFunc( "[IActiveScriptSite] GetLCID( ... )\n" );
  164. if ( !plcid )
  165. HRETURN( E_POINTER );
  166. HRETURN( S_FALSE ); // use system-defined locale
  167. }
  168. //////////////////////////////////////////////////////////////////////////////
  169. //
  170. // STDMETHODIMP
  171. // CActiveScriptSite::GetItemInfo(
  172. // LPCOLESTR pstrName, // in
  173. // DWORD dwReturnMask, // in
  174. // IUnknown **ppiunkItem, // out
  175. // ITypeInfo **ppti // out
  176. // )
  177. //
  178. //////////////////////////////////////////////////////////////////////////////
  179. STDMETHODIMP
  180. CActiveScriptSite::GetItemInfo(
  181. LPCOLESTR pstrName, // in
  182. DWORD dwReturnMask, // in
  183. IUnknown **ppiunkItem, // out
  184. ITypeInfo **ppti // out
  185. )
  186. {
  187. TraceClsFunc( "[IActiveScriptSite] GetItemInfo( )\n" );
  188. if ( (dwReturnMask & SCRIPTINFO_IUNKNOWN) && !ppiunkItem )
  189. HRETURN( E_POINTER );
  190. if ( (dwReturnMask & SCRIPTINFO_ITYPEINFO) && !ppti )
  191. HRETURN( E_POINTER );
  192. if ( pstrName == NULL )
  193. HRETURN( E_INVALIDARG );
  194. HRESULT hr = TYPE_E_ELEMENTNOTFOUND;
  195. if ( StrCmpI( pstrName, L"Resource" ) == 0 )
  196. {
  197. if ( dwReturnMask & SCRIPTINFO_IUNKNOWN )
  198. {
  199. if ( m_punkResource == NULL )
  200. {
  201. m_punkResource = new CResourceObject( m_hResource, m_pler, m_hkey, m_pszName );
  202. if ( m_punkResource == NULL )
  203. goto OutOfMemory;
  204. //
  205. // No need to AddRef() as the constructor does that for us.
  206. //
  207. }
  208. hr = m_punkResource->TypeSafeQI( IUnknown, ppiunkItem );
  209. }
  210. if ( SUCCEEDED( hr )
  211. && ( dwReturnMask & SCRIPTINFO_ITYPEINFO )
  212. )
  213. {
  214. *ppti = NULL;
  215. hr = THR( E_FAIL );
  216. }
  217. }
  218. Cleanup:
  219. HRETURN( hr );
  220. OutOfMemory:
  221. hr = E_OUTOFMEMORY;
  222. goto Cleanup;
  223. }
  224. //////////////////////////////////////////////////////////////////////////////
  225. //
  226. // STDMETHODIMP
  227. // CActiveScriptSite::GetDocVersionString(
  228. // BSTR *pbstrVersion // out
  229. // )
  230. //
  231. //////////////////////////////////////////////////////////////////////////////
  232. STDMETHODIMP
  233. CActiveScriptSite::GetDocVersionString(
  234. BSTR *pbstrVersion // out
  235. )
  236. {
  237. TraceClsFunc( "[IActiveScriptSite] GetDocVersionString( )\n" );
  238. *pbstrVersion = SysAllocString( L"Cluster Scripting Host Version 1.0" );
  239. if ( *pbstrVersion == NULL )
  240. {
  241. HRETURN( E_OUTOFMEMORY );
  242. }
  243. HRETURN( S_OK );
  244. }
  245. //////////////////////////////////////////////////////////////////////////////
  246. //
  247. // STDMETHODIMP
  248. // CActiveScriptSite::OnScriptTerminate(
  249. // const VARIANT *pvarResult, // in
  250. // const EXCEPINFO *pexcepinfo // in
  251. // )
  252. //
  253. //////////////////////////////////////////////////////////////////////////////
  254. STDMETHODIMP
  255. CActiveScriptSite::OnScriptTerminate(
  256. const VARIANT *pvarResult, // in
  257. const EXCEPINFO *pexcepinfo // in
  258. )
  259. {
  260. TraceClsFunc( "[IActiveScriptSite] OnScriptTerminate( )\n" );
  261. HRETURN( S_OK ); // nothing to do
  262. }
  263. //////////////////////////////////////////////////////////////////////////////
  264. //
  265. // STDMETHODIMP
  266. // CActiveScriptSite::OnStateChange(
  267. // SCRIPTSTATE ssScriptState // in
  268. // )
  269. //
  270. //////////////////////////////////////////////////////////////////////////////
  271. STDMETHODIMP
  272. CActiveScriptSite::OnStateChange(
  273. SCRIPTSTATE ssScriptState // in
  274. )
  275. {
  276. TraceClsFunc( "[IActiveScriptSite] OnStateChange( )\n" );
  277. #if defined(DEBUG)
  278. //
  279. // We don't really care.
  280. //
  281. switch ( ssScriptState )
  282. {
  283. case SCRIPTSTATE_UNINITIALIZED:
  284. TraceMsg( mtfCALLS, "OnStateChange: Uninitialized\n" );
  285. break;
  286. case SCRIPTSTATE_INITIALIZED:
  287. TraceMsg( mtfCALLS, "OnStateChange: Initialized\n" );
  288. break;
  289. case SCRIPTSTATE_STARTED:
  290. TraceMsg( mtfCALLS, "OnStateChange: Started\n" );
  291. break;
  292. case SCRIPTSTATE_CONNECTED:
  293. TraceMsg( mtfCALLS, "OnStateChange: Connected\n" );
  294. break;
  295. case SCRIPTSTATE_DISCONNECTED:
  296. TraceMsg( mtfCALLS, "OnStateChange: Disconnected\n" );
  297. break;
  298. case SCRIPTSTATE_CLOSED:
  299. TraceMsg( mtfCALLS, "OnStateChange: Closed\n" );
  300. break;
  301. default:
  302. TraceMsg( mtfCALLS, "OnStateChange: Unknown value\n" );
  303. break;
  304. }
  305. #endif // defined(DEBUG)
  306. HRETURN( S_OK );
  307. }
  308. //////////////////////////////////////////////////////////////////////////////
  309. //
  310. // STDMETHODIMP
  311. // CActiveScriptSite::OnScriptError(
  312. // IActiveScriptError *pscripterror // in
  313. // )
  314. //
  315. //////////////////////////////////////////////////////////////////////////////
  316. STDMETHODIMP
  317. CActiveScriptSite::OnScriptError(
  318. IActiveScriptError *pscripterror // in
  319. )
  320. {
  321. TraceClsFunc( "[IActiveScriptSite] OnScriptError( )\n" );
  322. HRESULT hr;
  323. BSTR bstrSourceLine = NULL;
  324. DWORD dwSourceContext;
  325. ULONG ulLineNumber;
  326. LONG lCharacterPosition;
  327. EXCEPINFO excepinfo;
  328. LPTSTR pszMsgBuf = NULL;
  329. hr = pscripterror->GetSourcePosition( &dwSourceContext, &ulLineNumber, &lCharacterPosition );
  330. hr = pscripterror->GetSourceLineText( &bstrSourceLine );
  331. if (SUCCEEDED( hr ))
  332. {
  333. TraceMsg( mtfCALLS, "Script Error: Line=%u, Character=%u: %s\n", ulLineNumber, lCharacterPosition, bstrSourceLine );
  334. (ClusResLogEvent)( m_hResource,
  335. LOG_ERROR,
  336. L"Script Error: Line=%1!u!, Character=%2!u!: %3\n",
  337. ulLineNumber,
  338. lCharacterPosition,
  339. bstrSourceLine
  340. );
  341. SysFreeString( bstrSourceLine );
  342. }
  343. else
  344. {
  345. TraceMsg( mtfCALLS, "Script Error: ulLineNumber = %u, lCharacter = %u\n", ulLineNumber, lCharacterPosition );
  346. (ClusResLogEvent)( m_hResource,
  347. LOG_ERROR,
  348. L"Script Error: Line=%1!u!, Character = %2!u!\n",
  349. ulLineNumber,
  350. lCharacterPosition
  351. );
  352. }
  353. hr = pscripterror->GetExceptionInfo( &excepinfo );
  354. if (SUCCEEDED( hr ))
  355. {
  356. if ( excepinfo.bstrSource )
  357. {
  358. TraceMsg( mtfCALLS, "Source: %s\n", excepinfo.bstrSource );
  359. (ClusResLogEvent)( m_hResource, LOG_ERROR, L"Source: %1\n", excepinfo.bstrSource );
  360. }
  361. if ( excepinfo.bstrDescription )
  362. {
  363. TraceMsg( mtfCALLS, "Description: %s\n", excepinfo.bstrDescription );
  364. (ClusResLogEvent)( m_hResource, LOG_ERROR, L"Description: %1\n", excepinfo.bstrDescription );
  365. }
  366. if ( excepinfo.bstrHelpFile )
  367. {
  368. TraceMsg( mtfCALLS, "Help File: %s\n", excepinfo.bstrHelpFile );
  369. (ClusResLogEvent)( m_hResource, LOG_ERROR, L"Help File: %1\n", excepinfo.bstrHelpFile );
  370. }
  371. hr = THR( excepinfo.scode );
  372. }
  373. HRETURN( S_FALSE );
  374. }
  375. //////////////////////////////////////////////////////////////////////////////
  376. //
  377. // STDMETHODIMP
  378. // CActiveScriptSite::OnEnterScript( void )
  379. //
  380. //////////////////////////////////////////////////////////////////////////////
  381. STDMETHODIMP
  382. CActiveScriptSite::OnEnterScript( void )
  383. {
  384. TraceClsFunc( "[IActiveScriptSite] OnEnterScript( )\n" );
  385. HRETURN( S_OK );
  386. }
  387. //////////////////////////////////////////////////////////////////////////////
  388. //
  389. // STDMETHODIMP
  390. // CActiveScriptSite::OnLeaveScript( void )
  391. //
  392. //////////////////////////////////////////////////////////////////////////////
  393. STDMETHODIMP
  394. CActiveScriptSite::OnLeaveScript( void )
  395. {
  396. TraceClsFunc( "[IActiveScriptSite] OnLeaveScript( )\n" );
  397. HRETURN( S_OK );
  398. }
  399. //****************************************************************************
  400. //
  401. // IActiveScriptSiteInterruptPoll
  402. //
  403. //****************************************************************************
  404. //////////////////////////////////////////////////////////////////////////////
  405. //
  406. // STDMETHODIMP
  407. // CActiveScriptSite::QueryContinue( void )
  408. //
  409. //////////////////////////////////////////////////////////////////////////////
  410. STDMETHODIMP
  411. CActiveScriptSite::QueryContinue( void )
  412. {
  413. TraceClsFunc( "[IActiveScriptSiteInterruptPoll] QueryContinue( )\n" );
  414. HRETURN( S_OK );
  415. }
  416. //****************************************************************************
  417. //
  418. // IActiveScriptSiteWindow
  419. //
  420. //****************************************************************************
  421. //////////////////////////////////////////////////////////////////////////////
  422. //
  423. // STDMETHODIMP
  424. // CActiveScriptSite::GetWindow (
  425. // HWND *phwnd // out
  426. // )
  427. //
  428. //////////////////////////////////////////////////////////////////////////////
  429. STDMETHODIMP
  430. CActiveScriptSite::GetWindow (
  431. HWND *phwnd // out
  432. )
  433. {
  434. TraceClsFunc( "[IActiveScriptSiteWindow] GetWindow( )\n" );
  435. *phwnd = NULL; // desktop;
  436. HRETURN( S_OK );
  437. }
  438. //////////////////////////////////////////////////////////////////////////////
  439. //
  440. // STDMETHODIMP
  441. // CActiveScriptSite::EnableModeless(
  442. // BOOL fEnable // in
  443. // )
  444. //
  445. //////////////////////////////////////////////////////////////////////////////
  446. STDMETHODIMP
  447. CActiveScriptSite::EnableModeless(
  448. BOOL fEnable // in
  449. )
  450. {
  451. TraceClsFunc( "[IActiveScriptSiteWindow] EnableModeless( )\n" );
  452. HRETURN( S_OK );
  453. }
  454. //****************************************************************************
  455. //
  456. // IDispatch
  457. //
  458. //****************************************************************************
  459. //////////////////////////////////////////////////////////////////////////////
  460. //
  461. // STDMETHODIMP
  462. // CActiveScriptSite::GetTypeInfoCount (
  463. // UINT * pctinfo // out
  464. // )
  465. //
  466. //////////////////////////////////////////////////////////////////////////////
  467. STDMETHODIMP
  468. CActiveScriptSite::GetTypeInfoCount (
  469. UINT * pctinfo // out
  470. )
  471. {
  472. TraceClsFunc( "[IDispatch] GetTypeInfoCount( )\n" );
  473. *pctinfo = 0;
  474. HRETURN( E_NOTIMPL );
  475. }
  476. //////////////////////////////////////////////////////////////////////////////
  477. //
  478. // STDMETHODIMP
  479. // CActiveScriptSite::GetTypeInfo (
  480. // UINT iTInfo, // in
  481. // LCID lcid, // in
  482. // ITypeInfo * * ppTInfo // out
  483. // )
  484. //
  485. //////////////////////////////////////////////////////////////////////////////
  486. STDMETHODIMP
  487. CActiveScriptSite::GetTypeInfo (
  488. UINT iTInfo, // in
  489. LCID lcid, // in
  490. ITypeInfo * * ppTInfo // out
  491. )
  492. {
  493. TraceClsFunc( "[IDispatch] GetTypeInfo( )\n" );
  494. if ( !ppTInfo )
  495. HRETURN( E_POINTER );
  496. *ppTInfo = NULL;
  497. HRETURN( E_NOTIMPL );
  498. }
  499. //////////////////////////////////////////////////////////////////////////////
  500. //
  501. // STDMETHODIMP
  502. // CActiveScriptSite::GetIDsOfNames (
  503. // REFIID riid, // in
  504. // LPOLESTR * rgszNames, // in
  505. // UINT cNames, // in
  506. // LCID lcid, // in
  507. // DISPID * rgDispId // out
  508. // )
  509. //
  510. //////////////////////////////////////////////////////////////////////////////
  511. STDMETHODIMP
  512. CActiveScriptSite::GetIDsOfNames (
  513. REFIID riid, // in
  514. LPOLESTR * rgszNames, // in
  515. UINT cNames, // in
  516. LCID lcid, // in
  517. DISPID * rgDispId // out
  518. )
  519. {
  520. TraceClsFunc( "[IDispatch] GetIDsOfName( )\n" );
  521. ZeroMemory( rgDispId, cNames * sizeof(DISPID) );
  522. HRETURN( E_NOTIMPL );
  523. }
  524. //////////////////////////////////////////////////////////////////////////////
  525. //
  526. // STDMETHODIMP
  527. // CActiveScriptSite::Invoke (
  528. // DISPID dispIdMember, // in
  529. // REFIID riid, // in
  530. // LCID lcid, // in
  531. // WORD wFlags, // in
  532. // DISPPARAMS *pDispParams, // out in
  533. // VARIANT *pVarResult, // out
  534. // EXCEPINFO *pExcepInfo, // out
  535. // UINT *puArgErr // out
  536. // )
  537. //
  538. //////////////////////////////////////////////////////////////////////////////
  539. STDMETHODIMP
  540. CActiveScriptSite::Invoke (
  541. DISPID dispIdMember, // in
  542. REFIID riid, // in
  543. LCID lcid, // in
  544. WORD wFlags, // in
  545. DISPPARAMS *pDispParams, // out in
  546. VARIANT *pVarResult, // out
  547. EXCEPINFO *pExcepInfo, // out
  548. UINT *puArgErr // out
  549. )
  550. {
  551. TraceClsFunc( "[IDispatch] Invoke( )\n" );
  552. HRETURN( E_NOTIMPL );
  553. }
  554. //****************************************************************************
  555. //
  556. // IDispatchEx
  557. //
  558. //****************************************************************************
  559. //////////////////////////////////////////////////////////////////////////////
  560. //
  561. // STDMETHODIMP
  562. // CActiveScriptSite::GetDispID (
  563. // BSTR bstrName, // in
  564. // DWORD grfdex, //in
  565. // DISPID *pid //out
  566. // )
  567. //
  568. //////////////////////////////////////////////////////////////////////////////
  569. STDMETHODIMP
  570. CActiveScriptSite::GetDispID (
  571. BSTR bstrName, // in
  572. DWORD grfdex, //in
  573. DISPID *pid //out
  574. )
  575. {
  576. if ( !pid )
  577. HRETURN( E_POINTER );
  578. TraceClsFunc( "[IDispatchEx] GetDispID( )\n" );
  579. HRESULT hr = S_OK;
  580. if ( StrCmpI( bstrName, L"Resource" ) == 0 )
  581. {
  582. *pid = 0;
  583. }
  584. else
  585. {
  586. hr = DISP_E_UNKNOWNNAME;
  587. }
  588. HRETURN( hr );
  589. }
  590. //////////////////////////////////////////////////////////////////////////////
  591. //
  592. // STDMETHODIMP
  593. // CActiveScriptSite::InvokeEx (
  594. // DISPID id, // in
  595. // LCID lcid, // in
  596. // WORD wFlags, // in
  597. // DISPPARAMS *pdp, // in
  598. // VARIANT *pvarRes, // out
  599. // EXCEPINFO *pei, // out
  600. // IServiceProvider *pspCaller // in
  601. // )
  602. //
  603. //////////////////////////////////////////////////////////////////////////////
  604. STDMETHODIMP
  605. CActiveScriptSite::InvokeEx (
  606. DISPID id, // in
  607. LCID lcid, // in
  608. WORD wFlags, // in
  609. DISPPARAMS *pdp, // in
  610. VARIANT *pvarRes, // out
  611. EXCEPINFO *pei, // out
  612. IServiceProvider *pspCaller // in
  613. )
  614. {
  615. TraceClsFunc2( "[IDispatchEx] InvokeEx( id = %u, ..., wFlags = 0x%08x, ... )\n", id, wFlags );
  616. HRESULT hr = S_OK;
  617. switch ( id )
  618. {
  619. case 0:
  620. pvarRes->vt = VT_DISPATCH;
  621. hr = THR( QueryInterface( IID_IDispatch, (void **) &pvarRes->pdispVal ) );
  622. break;
  623. default:
  624. hr = THR( DISP_E_MEMBERNOTFOUND );
  625. break;
  626. }
  627. HRETURN( hr );
  628. }
  629. //////////////////////////////////////////////////////////////////////////////
  630. //
  631. // STDMETHODIMP
  632. // CActiveScriptSite::DeleteMemberByName (
  633. // BSTR bstr, // in
  634. // DWORD grfdex // in
  635. // )
  636. //
  637. //////////////////////////////////////////////////////////////////////////////
  638. STDMETHODIMP
  639. CActiveScriptSite::DeleteMemberByName (
  640. BSTR bstr, // in
  641. DWORD grfdex // in
  642. )
  643. {
  644. TraceClsFunc( "[IDispatchEx] DeleteMemberByName( )\n" );
  645. HRETURN( E_NOTIMPL );
  646. }
  647. //////////////////////////////////////////////////////////////////////////////
  648. //
  649. // STDMETHODIMP
  650. // CActiveScriptSite::DeleteMemberByDispID (
  651. // DISPID id // in
  652. // )
  653. //
  654. //////////////////////////////////////////////////////////////////////////////
  655. STDMETHODIMP
  656. CActiveScriptSite::DeleteMemberByDispID (
  657. DISPID id // in
  658. )
  659. {
  660. TraceClsFunc1( "[IDispatchEx] DeleteMemberByDispID( id = %u )\n", id );
  661. HRETURN( E_NOTIMPL );
  662. }
  663. //////////////////////////////////////////////////////////////////////////////
  664. //
  665. // STDMETHODIMP
  666. // CActiveScriptSite::GetMemberProperties (
  667. // DISPID id, // in
  668. // DWORD grfdexFetch, // in
  669. // DWORD * pgrfdex // out
  670. // )
  671. //
  672. //////////////////////////////////////////////////////////////////////////////
  673. STDMETHODIMP
  674. CActiveScriptSite::GetMemberProperties (
  675. DISPID id, // in
  676. DWORD grfdexFetch, // in
  677. DWORD * pgrfdex // out
  678. )
  679. {
  680. TraceClsFunc2( "[IDispatchEx] GetMemberProperties( id = %u, grfdexFetch = 0x%08x )\n", id, grfdexFetch );
  681. HRETURN( E_NOTIMPL );
  682. }
  683. //////////////////////////////////////////////////////////////////////////////
  684. //
  685. // STDMETHODIMP
  686. // CActiveScriptSite::GetMemberName (
  687. // DISPID id, // in
  688. // BSTR * pbstrName // out
  689. // )
  690. //
  691. //////////////////////////////////////////////////////////////////////////////
  692. STDMETHODIMP
  693. CActiveScriptSite::GetMemberName (
  694. DISPID id, // in
  695. BSTR * pbstrName // out
  696. )
  697. {
  698. TraceClsFunc1( "[IDispatchEx] GetMemberName( id = %u, ... )\n", id );
  699. HRETURN( E_NOTIMPL );
  700. }
  701. //////////////////////////////////////////////////////////////////////////////
  702. //
  703. // STDMETHODIMP
  704. // CActiveScriptSite::GetNextDispID (
  705. // DWORD grfdex, // in
  706. // DISPID id, // in
  707. // DISPID * pid // out
  708. // )
  709. //
  710. //////////////////////////////////////////////////////////////////////////////
  711. STDMETHODIMP
  712. CActiveScriptSite::GetNextDispID (
  713. DWORD grfdex, // in
  714. DISPID id, // in
  715. DISPID * pid // out
  716. )
  717. {
  718. TraceClsFunc2( "[IDispatchEx] GetNextDispId( grfdex = 0x%08x, id = %u, ... )\n", grfdex, id );
  719. HRETURN( E_NOTIMPL );
  720. }
  721. //////////////////////////////////////////////////////////////////////////////
  722. //
  723. // STDMETHODIMP
  724. // CActiveScriptSite::GetNameSpaceParent (
  725. // IUnknown * * ppunk // out
  726. // )
  727. //
  728. //////////////////////////////////////////////////////////////////////////////
  729. STDMETHODIMP
  730. CActiveScriptSite::GetNameSpaceParent (
  731. IUnknown * * ppunk // out
  732. )
  733. {
  734. TraceClsFunc( "[IDispatchEx] GetNameSpaceParent( ... )\n" );
  735. if ( !ppunk )
  736. HRETURN( E_POINTER );
  737. *ppunk = NULL;
  738. HRETURN( E_NOTIMPL );
  739. }
  740. //****************************************************************************
  741. //
  742. // Private Methods
  743. //
  744. //****************************************************************************
  745. //////////////////////////////////////////////////////////////////////////////
  746. //
  747. // STDMETHODIMP
  748. // CActiveScriptSite::LogError(
  749. // HRESULT hrIn
  750. // )
  751. //
  752. //////////////////////////////////////////////////////////////////////////////
  753. STDMETHODIMP
  754. CActiveScriptSite::LogError(
  755. HRESULT hrIn
  756. )
  757. {
  758. TraceClsFunc1( "LogError( hrIn = 0x%08x )\n", hrIn );
  759. TraceMsg( mtfCALLS, "HRESULT: 0x%08x\n", hrIn );
  760. (ClusResLogEvent)( m_hResource, LOG_ERROR, L"HRESULT: 0x%1!08x!.\n", hrIn );
  761. HRETURN( S_OK );
  762. } //*** LogError( )
  763. //****************************************************************************
  764. //
  765. // Automation Methods
  766. //
  767. //****************************************************************************