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.

99 lines
2.9 KiB

  1. [
  2. uuid(27db346f-6d5e-4e84-abe2-8922f55ae38d),
  3. version(1.0)
  4. ]
  5. interface SxsStoreManager
  6. {
  7. import "wtypes.idl";
  8. typedef struct _tagSXS_ASSEMBLY_REFERENCE
  9. {
  10. GUID InstallationReferenceType;
  11. [string, unique] WCHAR *pcwszReferenceData;
  12. [string, unique] WCHAR *pcwszReferenceSubData;
  13. } SXS_ASSEMBLY_REFERENCE, *PSXS_ASSEMBLY_REFERENCE;
  14. typedef const SXS_ASSEMBLY_REFERENCE *PCSXS_ASSEMBLY_REFERENCE;
  15. typedef struct _tagSXS_INSTALL_DATA
  16. {
  17. DWORD dwInstallationFlags;
  18. GUID StoreIdentifier;
  19. [string, unique] WCHAR *pcwszManifestPath;
  20. SXS_ASSEMBLY_REFERENCE AssemblyReference;
  21. } SXS_INSTALL_DATA, *PSXS_INSTALL_DATA;
  22. typedef const SXS_INSTALL_DATA *PCSXS_INSTALL_DATA;
  23. typedef enum _tagSXS_INSTALL_RESULT
  24. {
  25. SXSIR_Installed,
  26. SXSIR_AlreadyPresent,
  27. SXSIR_AccessDenied,
  28. SXSIR_AssemblyCorrupt,
  29. SXSIR_OtherFailure
  30. } SXS_INSTALL_RESULT, *PSXS_INSTALL_RESULT;
  31. BOOL
  32. SxsProtectedInstall(
  33. [in] DWORD dwFlags,
  34. [in] ULONG ulInstallationCount,
  35. [in, size_is(ulInstallationCount)] PCSXS_INSTALL_DATA pInstallationSet,
  36. [out] PSXS_INSTALL_RESULT pInstallationResult
  37. );
  38. typedef enum _tagSXS_UNINSTALL_RESULT
  39. {
  40. SXSUR_NotInstalled, // The assembly is not installed
  41. SXSUR_ReferenceNotPresent, // The reference is not present
  42. SXSUR_RemovedReference, // Removed a reference, did not uninstall bits
  43. SXSUR_Uninstalled, // The assembly bits were uninstalled
  44. SXSUR_Failure // A failure occurred during uninstallation
  45. } SXS_UNINSTALL_RESULT, *PSXS_UNINSTALL_RESULT;
  46. typedef const SXS_UNINSTALL_RESULT *PCSXS_UNINSTALL_RESULT;
  47. BOOL
  48. SxsProtectedUninstall(
  49. [in] DWORD dwFlags,
  50. [in] ULONG ulInstallationCount,
  51. [in, size_is(ulInstallationCount)] PCSXS_UNINSTALL_RESULT pcUninstalls
  52. );
  53. typedef struct _tagSXS_CREATE_STORE
  54. {
  55. DWORD dwStoreFlags;
  56. GUID StoreIdentifier;
  57. [string] WCHAR *pcwszStoreFilesystemPath;
  58. [string, unique] WCHAR *pcwszStoreFriendlyName;
  59. } SXS_CREATE_STORE, *PSXS_CREATE_STORE;
  60. typedef const SXS_CREATE_STORE *PCSXS_CREATE_STORE;
  61. typedef enum _tagSXS_CREATE_STORE_RESULT
  62. {
  63. SXSCS_AlreadyExists,
  64. SXSCS_Created,
  65. SXSCS_InvalidPath,
  66. SXSCS_Failure
  67. } SXS_CREATE_STORE_RESULT;
  68. BOOL
  69. SxsCreateProtectedStore(
  70. [in] PCSXS_CREATE_STORE pcSxsCreateStoreParams,
  71. [out, retval] SXS_CREATE_STORE_RESULT* pCreateStoreDisposition
  72. );
  73. typedef struct _tagSXS_STORE_DETAILS {
  74. DWORD dwStoreFlags;
  75. GUID StoreIdent;
  76. [string] WCHAR *pcwszStorePath;
  77. [string, unique] WCHAR *pcwszStoreFriendlyName;
  78. } SXS_STORE_DETAILS, *PSXS_STORE_DETAILS;
  79. typedef const SXS_STORE_DETAILS *PCSXS_STORE_DETAILS;
  80. BOOL
  81. SxsListProtectedStores(
  82. [in] DWORD dwFlags,
  83. [out] ULONG *pulStoreCount,
  84. [out, size_is( , *pulStoreCount)] PSXS_STORE_DETAILS *ppcSxsStores
  85. );
  86. }