//android style
virtual LRESULT LOOPER_SAFE sendRunnable(shared_ptr<Runnable> obj);
virtual LRESULT LOOPER_SAFE postRunnable(shared_ptr<Runnable> obj);
virtual LRESULT LOOPER_SAFE postDelayedRunnable(shared_ptr<Runnable> obj, UINT ms);
virtual void LOOPER_SAFE cancelRunnable(shared_ptr<Runnable> obj);
virtual void LOOPER_SAFE removeCallbacks(shared_ptr<Runnable> obj){cancelRunnable(obj);}
virtual LRESULT LOOPER_SAFE sendRunnable(shared_ptr<Runnable> obj);
virtual LRESULT LOOPER_SAFE postRunnable(shared_ptr<Runnable> obj);
virtual LRESULT LOOPER_SAFE postDelayedRunnable(shared_ptr<Runnable> obj, UINT ms);
virtual void LOOPER_SAFE cancelRunnable(shared_ptr<Runnable> obj);
virtual void LOOPER_SAFE removeCallbacks(shared_ptr<Runnable> obj){cancelRunnable(obj);}