public ImageList(ImageListSize size) {
//this._Size = size;
//this._SizePixels = new Lazy<Int32Size>(this.GetSizePixels);
var handle = IntPtr.Zero;
var hresult = Win32Api.SHGetImageList(size, ref IID_ImageList2, out this._ImageList);
Win32Api.SHGetImageListHandle(size, ref IID_ImageList2, ref handle);
this.Handle = handle;
Marshal.ThrowExceptionForHR(hresult);
}