#ifndef __RILEXCEPTIONS_H__ #define __RILEXCEPTIONS_H__ struct win32_error { public: std::string name; DWORD err; win32_error(const std::string& name) : err(GetLastError()), name(name) { } }; struct ril_error { public: std::string name; HRESULT err; ril_error(const std::string& name, HRESULT err) : name(name), err(err) { } }; struct ril_structsize_error { public: size_t got; size_t expect; ril_structsize_error(size_t got, size_t expect) : got(got), expect(expect) { } }; inline void checkminsize(const void *p, size_t got, size_t minimum) { if (minimum && p==NULL) throw ril_structsize_error(-1,minimum); if (got