1
0

providerOperation.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef NULLSOFT_AUTH_LOGIN_PROVIDER_OPERATION_HEADER
  2. #define NULLSOFT_AUTH_LOGIN_PROVIDER_OPERATION_HEADER
  3. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  4. #pragma once
  5. #endif
  6. #include <wtypes.h>
  7. class LoginProvider;
  8. class LoginProviderEnumerator;
  9. class LoginProviderOperation
  10. {
  11. public:
  12. typedef enum
  13. {
  14. operationDelete = 0,
  15. operationReplace = 1,
  16. } OperationCode;
  17. protected:
  18. LoginProviderOperation(LoginProvider *pSource, LoginProvider *pTarget, UINT uCode);
  19. ~LoginProviderOperation();
  20. public:
  21. static HRESULT CreateDeleteOperation(LoginProvider *pRemove, LoginProviderOperation **instance);
  22. static HRESULT CreateReplaceOperation(LoginProvider *pSource, LoginProvider *pTarget, LoginProviderOperation **instance);
  23. static HRESULT CreateFromUpdate(LoginProvider *active, LoginProviderEnumerator *enumerator, LoginProviderOperation **instance);
  24. public:
  25. ULONG AddRef();
  26. ULONG Release();
  27. UINT GetCode();
  28. HRESULT GetSource(LoginProvider **provider);
  29. HRESULT GetTarget(LoginProvider **provider);
  30. protected:
  31. ULONG ref;
  32. LoginProvider *source;
  33. LoginProvider *target;
  34. UINT code;
  35. };
  36. #endif //NULLSOFT_AUTH_LOGIN_PROVIDER_OPERATION_HEADER