Leaked source code of windows server 2003
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.

73 lines
1.8 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 2002.
  5. //
  6. // File:
  7. // stackwalk.idl
  8. //
  9. // Contents:
  10. // Definition of interfaces for stackwalking.
  11. //
  12. // History:
  13. // mfeingol 01-16-2002 Created
  14. //
  15. //--------------------------------------------------------------------------
  16. #ifndef DO_NO_IMPORTS
  17. import "objidl.idl";
  18. #endif
  19. enum CreateStackTraceFlags
  20. {
  21. CREATESTACKTRACE_ONLYADDRESSES = 1
  22. };
  23. // IStackWalkerSymbol: interface on stackwalker symbol objects
  24. [
  25. object,
  26. local,
  27. pointer_default(unique),
  28. uuid(00000157-0000-0000-C000-000000000046)
  29. ]
  30. interface IStackWalkerSymbol : IUnknown
  31. {
  32. LPCWSTR ModuleName();
  33. LPCWSTR SymbolName();
  34. DWORD64 Address();
  35. DWORD64 Displacement();
  36. IStackWalkerSymbol* Next();
  37. }
  38. // IStackWalkerStack: interface on stackwalker stack objects
  39. [
  40. object,
  41. local,
  42. pointer_default(unique),
  43. uuid(00000158-0000-0000-C000-000000000046)
  44. ]
  45. interface IStackWalkerStack : IUnknown
  46. {
  47. IStackWalkerSymbol* TopSymbol();
  48. SIZE_T Size ([in] LONG lMaxNumLines);
  49. BOOL GetStack ([in] SIZE_T nChars, [in, string] LPWSTR wsz, [in] LONG lMaxNumLines);
  50. }
  51. // IStackWalker: interface on stackwalker objects
  52. [
  53. object,
  54. local,
  55. pointer_default(unique),
  56. uuid(00000159-0000-0000-C000-000000000046)
  57. ]
  58. interface IStackWalker : IUnknown
  59. {
  60. HRESULT Attach ([in] HANDLE hProcess);
  61. IStackWalkerStack* CreateStackTrace ([in] LPVOID pContext, [in] HANDLE hThread, [in] DWORD dwFlags);
  62. IStackWalkerSymbol* ResolveAddress ([in] DWORD64 dw64Addr);
  63. }
  64. cpp_quote("")
  65. cpp_quote("EXTERN_C const CLSID CLSID_StackWalker;")
  66. cpp_quote("")