extern crate winapi;
extern crate wio;
use winapi::Interface;
use wio::com::ComPtr;
pub trait ComWrapper {
type Interface: Interface;
unsafe fn get_raw(&self) -> *mut Self::Interface;
unsafe fn into_raw(self) -> *mut Self::Interface;
unsafe fn from_raw(raw: *mut Self::Interface) -> Self;
unsafe fn from_ptr(ptr: ComPtr<Self::Interface>) -> Self;
unsafe fn into_ptr(self) -> ComPtr<Self::Interface>;
}