#pragma once class IObservable { public: virtual IObservable * observeOn(DWORD dwThreadId) = 0; virtual IObservable * subscribe(IObserver *pObserver) = 0; virtual IObservable * unsubscribe() = 0; };