Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.74 KB | None | 0 0
  1. #include "Stos.h"
  2.  
  3. HRESULT STDMETHODCALLTYPE Stos::QueryInterface(REFIID iid, void **ptr) {
  4.     if (ptr == NULL) return E_POINTER;
  5.     *ptr = NULL;
  6.     if (iid == IID_IUnknown) *ptr = this;
  7.     else if (iid == IID_IStos) *ptr = this;
  8.     if (*ptr != NULL) { AddRef(); return S_OK; };
  9.     return E_NOINTERFACE;
  10. };
  11.  
  12. ULONG STDMETHODCALLTYPE Stos::AddRef() {
  13.     InterlockedIncrement(&m_ref);
  14.     return m_ref;
  15. };
  16.  
  17. ULONG STDMETHODCALLTYPE Stos::Release() {
  18.     ULONG rv = InterlockedDecrement(&m_ref);
  19.     if (rv == 0) delete this;
  20.     return rv;
  21. };
  22.  
  23. extern volatile ULONG usageCount;
  24.  
  25. HRESULT Stos::Push(int val)
  26. {
  27.     return S_OK;
  28. }
  29.  
  30. HRESULT Stos::Pop(int* val)
  31. {
  32.     *val = 105;
  33.     return S_OK;
  34. }
  35.  
  36. HRESULT Stos::Top(int* val)
  37. {
  38.     *val = 105;
  39.     return S_OK;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement