#pragma once #include #ifdef AMRECORDER_IMPORT #define AMRECORDER_API extern "C" __declspec(dllimport) #else #define AMRECORDER_API extern "C" __declspec(dllexport) #endif namespace am { class wgc_session { public: struct wgc_session_frame { unsigned int width; unsigned int height; unsigned int row_pitch; const unsigned char *data; }; class wgc_session_observer { public: virtual ~wgc_session_observer() {} virtual void on_frame(const wgc_session_frame &frame) = 0; }; public: virtual void release() = 0; virtual int initialize(HWND hwnd) = 0; virtual int initialize(HMONITOR hmonitor) = 0; virtual void register_observer(wgc_session_observer *observer) = 0; virtual int start() = 0; virtual int stop() = 0; virtual int pause() = 0; virtual int resume() = 0; protected: virtual ~wgc_session(){}; }; } // namespace am AMRECORDER_API bool wgc_is_supported(); AMRECORDER_API am::wgc_session *wgc_create_session();