Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Variant() [16/16]

System.Variant.Variant ( object obj)
inline

Definition at line 233 of file Variant.cs.

234 {
235 _data = 0L;
236 VarEnum varEnum = VarEnum.VT_EMPTY;
237 if (obj is DateTime)
238 {
239 _objref = null;
240 _flags = 16;
241 _data = ((DateTime)obj).Ticks;
242 return;
243 }
244 if (obj is string)
245 {
246 _flags = 14;
247 _objref = obj;
248 return;
249 }
250 if (obj == null)
251 {
252 this = Empty;
253 return;
254 }
255 if (obj == System.DBNull.Value)
256 {
257 this = DBNull;
258 return;
259 }
260 if (obj == Type.Missing)
261 {
262 this = Missing;
263 return;
264 }
265 if (obj is Array)
266 {
267 _flags = 65554;
268 _objref = obj;
269 return;
270 }
271 _flags = 0;
272 _objref = null;
273 if (obj is UnknownWrapper)
274 {
275 varEnum = VarEnum.VT_UNKNOWN;
276 obj = ((UnknownWrapper)obj).WrappedObject;
277 }
278 else if (obj is DispatchWrapper)
279 {
280 varEnum = VarEnum.VT_DISPATCH;
281 obj = ((DispatchWrapper)obj).WrappedObject;
282 }
283 else if (obj is ErrorWrapper)
284 {
285 varEnum = VarEnum.VT_ERROR;
286 obj = ((ErrorWrapper)obj).ErrorCode;
287 }
288 else if (obj is CurrencyWrapper)
289 {
290 varEnum = VarEnum.VT_CY;
291 obj = ((CurrencyWrapper)obj).WrappedObject;
292 }
293 else if (obj is BStrWrapper)
294 {
295 varEnum = VarEnum.VT_BSTR;
296 obj = ((BStrWrapper)obj).WrappedObject;
297 }
298 if (obj != null)
299 {
301 }
302 if (varEnum != 0)
303 {
304 _flags |= (int)varEnum << 24;
305 }
306 }
static readonly DBNull Value
Definition DBNull.cs:8
static readonly Variant Empty
Definition Variant.cs:117
void SetFieldsObject(object val)
static readonly Variant Missing
Definition Variant.cs:119
object _objref
Definition Variant.cs:10
static readonly Variant DBNull
Definition Variant.cs:121

References System.Variant._data, System.Variant._flags, System.Variant._objref, System.DateTime, System.Variant.DBNull, System.Variant.Empty, System.L, System.Type.Missing, System.Variant.Missing, System.obj, System.Variant.SetFieldsObject(), and System.DBNull.Value.