Advertisement
Guest User

Untitled

a guest
May 24th, 2013
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. #include <Windows.h>
  2. #include <tchar.h>
  3.  
  4. class TestInterfaceImplementation : public IUnknown, public IClassFactory{
  5. public:
  6. /* begin implement IUnknown */
  7. ULONG STDMETHODCALLTYPE AddRef()
  8. {
  9. MessageBox(NULL,
  10. _T("TEST1"),
  11. _T("TEST1"),
  12. NULL);
  13. return 0;
  14. }
  15. HRESULT STDMETHODCALLTYPE QueryInterface(IN REFIID riid, OUT void **ppvObject)
  16. {
  17. MessageBox(NULL,
  18. _T("TEST2"),
  19. _T("TEST2"),
  20. NULL);
  21. return S_OK;
  22. }
  23. ULONG STDMETHODCALLTYPE Release() {
  24. MessageBox(NULL,
  25. _T("TEST3"),
  26. _T("TEST3"),
  27. NULL);
  28. return 0;
  29. }
  30. /* end implement IUnknown */
  31.  
  32. /* begin implement IClassFactory */
  33. HRESULT STDMETHODCALLTYPE CreateInstance(IN IUnknown *pUnkOuter, IN REFIID riid, OUT void **ppvObject)
  34. {
  35. MessageBox(NULL,
  36. _T("TEST4"),
  37. _T("TEST4"),
  38. NULL);
  39. return S_OK;
  40. }
  41. HRESULT STDMETHODCALLTYPE LockServer(IN BOOL fLock)
  42. {
  43. MessageBox(NULL,
  44. _T("TEST5"),
  45. _T("TEST5"),
  46. NULL);
  47. return S_OK;
  48. }
  49. /* end implement IClassFactory */
  50. };
  51.  
  52. HRESULT __stdcall DllGetClassObject(IN REFCLSID rclsid, IN REFIID riid, OUT LPVOID *ppv) {
  53. HRESULT hr = E_OUTOFMEMORY;
  54. *ppv = NULL;
  55. TestInterfaceImplementation *tii = new TestInterfaceImplementation(rclsid);
  56. if (tii != NULL) {
  57. hr = tii->QueryInterface(riid, ppv);
  58. tii->Release();
  59. }
  60. return S_OK;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement