1
+ #![ cfg_attr( not( windows) , allow( unused_variables) ) ]
2
+
1
3
use super :: * ;
2
4
use core:: mem:: transmute;
3
5
@@ -23,30 +25,40 @@ impl Default for PROPVARIANT {
23
25
24
26
impl Clone for VARIANT {
25
27
fn clone ( & self ) -> Self {
28
+ #[ cfg( windows) ]
26
29
unsafe {
27
30
let mut value = Self :: new ( ) ;
28
31
imp:: VariantCopy ( & mut value. 0 , & self . 0 ) ;
29
32
value
30
33
}
34
+
35
+ #[ cfg( not( windows) ) ]
36
+ unimplemented ! ( ) ;
31
37
}
32
38
}
33
39
34
40
impl Clone for PROPVARIANT {
35
41
fn clone ( & self ) -> Self {
42
+ #[ cfg( windows) ]
36
43
unsafe {
37
44
let mut value = Self :: new ( ) ;
38
45
imp:: PropVariantCopy ( & mut value. 0 , & self . 0 ) ;
39
46
value
40
47
}
48
+
49
+ #[ cfg( not( windows) ) ]
50
+ unimplemented ! ( ) ;
41
51
}
42
52
}
43
53
54
+ #[ cfg( windows) ]
44
55
impl Drop for VARIANT {
45
56
fn drop ( & mut self ) {
46
57
unsafe { imp:: VariantClear ( & mut self . 0 ) } ;
47
58
}
48
59
}
49
60
61
+ #[ cfg( windows) ]
50
62
impl Drop for PROPVARIANT {
51
63
fn drop ( & mut self ) {
52
64
unsafe { imp:: PropVariantClear ( & mut self . 0 ) } ;
@@ -66,6 +78,7 @@ impl core::fmt::Debug for VARIANT {
66
78
let mut debug = f. debug_struct ( "VARIANT" ) ;
67
79
debug. field ( "type" , & unsafe { self . 0 . Anonymous . Anonymous . vt } ) ;
68
80
81
+ #[ cfg( windows) ]
69
82
if let Ok ( value) = BSTR :: try_from ( self ) {
70
83
debug. field ( "value" , & value) ;
71
84
}
@@ -79,6 +92,7 @@ impl core::fmt::Debug for PROPVARIANT {
79
92
let mut debug = f. debug_struct ( "PROPVARIANT" ) ;
80
93
debug. field ( "type" , & unsafe { self . 0 . Anonymous . Anonymous . vt } ) ;
81
94
95
+ #[ cfg( windows) ]
82
96
if let Ok ( value) = BSTR :: try_from ( self ) {
83
97
debug. field ( "value" , & value) ;
84
98
}
@@ -87,12 +101,14 @@ impl core::fmt::Debug for PROPVARIANT {
87
101
}
88
102
}
89
103
104
+ #[ cfg( windows) ]
90
105
impl core:: fmt:: Display for VARIANT {
91
106
fn fmt ( & self , f : & mut core:: fmt:: Formatter < ' _ > ) -> core:: fmt:: Result {
92
107
core:: write!( f, "{}" , BSTR :: try_from( self ) . unwrap_or_default( ) )
93
108
}
94
109
}
95
110
111
+ #[ cfg( windows) ]
96
112
impl core:: fmt:: Display for PROPVARIANT {
97
113
fn fmt ( & self , f : & mut core:: fmt:: Formatter < ' _ > ) -> core:: fmt:: Result {
98
114
core:: write!( f, "{}" , BSTR :: try_from( self ) . unwrap_or_default( ) )
@@ -101,6 +117,7 @@ impl core::fmt::Display for PROPVARIANT {
101
117
102
118
impl PartialEq for VARIANT {
103
119
fn eq ( & self , other : & Self ) -> bool {
120
+ #[ cfg( windows) ]
104
121
unsafe {
105
122
if self . 0 . Anonymous . Anonymous . vt != other. 0 . Anonymous . Anonymous . vt {
106
123
return false ;
@@ -114,18 +131,25 @@ impl PartialEq for VARIANT {
114
131
false
115
132
}
116
133
}
134
+
135
+ #[ cfg( not( windows) ) ]
136
+ unimplemented ! ( ) ;
117
137
}
118
138
}
119
139
120
140
impl PartialEq for PROPVARIANT {
121
141
fn eq ( & self , other : & Self ) -> bool {
142
+ #[ cfg( windows) ]
122
143
unsafe {
123
144
if self . 0 . Anonymous . Anonymous . vt != other. 0 . Anonymous . Anonymous . vt {
124
145
return false ;
125
146
}
126
147
127
148
imp:: PropVariantCompareEx ( & self . 0 , & other. 0 , 0 , 0 ) == 0
128
149
}
150
+
151
+ #[ cfg( not( windows) ) ]
152
+ unimplemented ! ( ) ;
129
153
}
130
154
}
131
155
@@ -188,6 +212,7 @@ impl PROPVARIANT {
188
212
}
189
213
}
190
214
215
+ #[ cfg( windows) ]
191
216
impl TryFrom < & VARIANT > for PROPVARIANT {
192
217
type Error = Error ;
193
218
fn try_from ( from : & VARIANT ) -> Result < Self > {
@@ -198,6 +223,7 @@ impl TryFrom<&VARIANT> for PROPVARIANT {
198
223
}
199
224
}
200
225
226
+ #[ cfg( windows) ]
201
227
impl TryFrom < & PROPVARIANT > for VARIANT {
202
228
type Error = Error ;
203
229
fn try_from ( from : & PROPVARIANT ) -> Result < Self > {
@@ -316,18 +342,21 @@ impl From<BSTR> for PROPVARIANT {
316
342
}
317
343
}
318
344
345
+ #[ cfg( windows) ]
319
346
impl From < & str > for VARIANT {
320
347
fn from ( value : & str ) -> Self {
321
348
BSTR :: from ( value) . into ( )
322
349
}
323
350
}
324
351
352
+ #[ cfg( windows) ]
325
353
impl From < & str > for PROPVARIANT {
326
354
fn from ( value : & str ) -> Self {
327
355
BSTR :: from ( value) . into ( )
328
356
}
329
357
}
330
358
359
+ #[ cfg( windows) ]
331
360
impl TryFrom < & VARIANT > for BSTR {
332
361
type Error = Error ;
333
362
fn try_from ( from : & VARIANT ) -> Result < Self > {
@@ -336,6 +365,7 @@ impl TryFrom<&VARIANT> for BSTR {
336
365
}
337
366
}
338
367
368
+ #[ cfg( windows) ]
339
369
impl TryFrom < & PROPVARIANT > for BSTR {
340
370
type Error = Error ;
341
371
fn try_from ( from : & PROPVARIANT ) -> Result < Self > {
@@ -383,6 +413,7 @@ impl From<bool> for PROPVARIANT {
383
413
}
384
414
}
385
415
416
+ #[ cfg( windows) ]
386
417
impl TryFrom < & VARIANT > for bool {
387
418
type Error = Error ;
388
419
fn try_from ( from : & VARIANT ) -> Result < Self > {
@@ -391,6 +422,7 @@ impl TryFrom<&VARIANT> for bool {
391
422
}
392
423
}
393
424
425
+ #[ cfg( windows) ]
394
426
impl TryFrom < & PROPVARIANT > for bool {
395
427
type Error = Error ;
396
428
fn try_from ( from : & PROPVARIANT ) -> Result < Self > {
@@ -501,6 +533,7 @@ impl From<u16> for PROPVARIANT {
501
533
}
502
534
}
503
535
536
+ #[ cfg( windows) ]
504
537
impl TryFrom < & VARIANT > for u16 {
505
538
type Error = Error ;
506
539
fn try_from ( from : & VARIANT ) -> Result < Self > {
@@ -509,6 +542,7 @@ impl TryFrom<&VARIANT> for u16 {
509
542
}
510
543
}
511
544
545
+ #[ cfg( windows) ]
512
546
impl TryFrom < & PROPVARIANT > for u16 {
513
547
type Error = Error ;
514
548
fn try_from ( from : & PROPVARIANT ) -> Result < Self > {
@@ -551,6 +585,7 @@ impl From<i16> for PROPVARIANT {
551
585
}
552
586
}
553
587
588
+ #[ cfg( windows) ]
554
589
impl TryFrom < & VARIANT > for i16 {
555
590
type Error = Error ;
556
591
fn try_from ( from : & VARIANT ) -> Result < Self > {
@@ -559,6 +594,7 @@ impl TryFrom<&VARIANT> for i16 {
559
594
}
560
595
}
561
596
597
+ #[ cfg( windows) ]
562
598
impl TryFrom < & PROPVARIANT > for i16 {
563
599
type Error = Error ;
564
600
fn try_from ( from : & PROPVARIANT ) -> Result < Self > {
@@ -601,6 +637,7 @@ impl From<u32> for PROPVARIANT {
601
637
}
602
638
}
603
639
640
+ #[ cfg( windows) ]
604
641
impl TryFrom < & VARIANT > for u32 {
605
642
type Error = Error ;
606
643
fn try_from ( from : & VARIANT ) -> Result < Self > {
@@ -609,6 +646,7 @@ impl TryFrom<&VARIANT> for u32 {
609
646
}
610
647
}
611
648
649
+ #[ cfg( windows) ]
612
650
impl TryFrom < & PROPVARIANT > for u32 {
613
651
type Error = Error ;
614
652
fn try_from ( from : & PROPVARIANT ) -> Result < Self > {
@@ -651,6 +689,7 @@ impl From<i32> for PROPVARIANT {
651
689
}
652
690
}
653
691
692
+ #[ cfg( windows) ]
654
693
impl TryFrom < & VARIANT > for i32 {
655
694
type Error = Error ;
656
695
fn try_from ( from : & VARIANT ) -> Result < Self > {
@@ -659,6 +698,7 @@ impl TryFrom<&VARIANT> for i32 {
659
698
}
660
699
}
661
700
701
+ #[ cfg( windows) ]
662
702
impl TryFrom < & PROPVARIANT > for i32 {
663
703
type Error = Error ;
664
704
fn try_from ( from : & PROPVARIANT ) -> Result < Self > {
@@ -701,6 +741,7 @@ impl From<u64> for PROPVARIANT {
701
741
}
702
742
}
703
743
744
+ #[ cfg( windows) ]
704
745
impl TryFrom < & VARIANT > for u64 {
705
746
type Error = Error ;
706
747
fn try_from ( from : & VARIANT ) -> Result < Self > {
@@ -709,6 +750,7 @@ impl TryFrom<&VARIANT> for u64 {
709
750
}
710
751
}
711
752
753
+ #[ cfg( windows) ]
712
754
impl TryFrom < & PROPVARIANT > for u64 {
713
755
type Error = Error ;
714
756
fn try_from ( from : & PROPVARIANT ) -> Result < Self > {
@@ -751,6 +793,7 @@ impl From<i64> for PROPVARIANT {
751
793
}
752
794
}
753
795
796
+ #[ cfg( windows) ]
754
797
impl TryFrom < & VARIANT > for i64 {
755
798
type Error = Error ;
756
799
fn try_from ( from : & VARIANT ) -> Result < Self > {
@@ -759,6 +802,7 @@ impl TryFrom<&VARIANT> for i64 {
759
802
}
760
803
}
761
804
805
+ #[ cfg( windows) ]
762
806
impl TryFrom < & PROPVARIANT > for i64 {
763
807
type Error = Error ;
764
808
fn try_from ( from : & PROPVARIANT ) -> Result < Self > {
@@ -835,6 +879,7 @@ impl From<f64> for PROPVARIANT {
835
879
}
836
880
}
837
881
882
+ #[ cfg( windows) ]
838
883
impl TryFrom < & VARIANT > for f64 {
839
884
type Error = Error ;
840
885
fn try_from ( from : & VARIANT ) -> Result < Self > {
@@ -843,6 +888,7 @@ impl TryFrom<&VARIANT> for f64 {
843
888
}
844
889
}
845
890
891
+ #[ cfg( windows) ]
846
892
impl TryFrom < & PROPVARIANT > for f64 {
847
893
type Error = Error ;
848
894
fn try_from ( from : & PROPVARIANT ) -> Result < Self > {
0 commit comments