safearray_func.go 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. //go:build !windows
  2. package ole
  3. import (
  4. "unsafe"
  5. )
  6. // safeArrayAccessData returns raw array pointer.
  7. //
  8. // AKA: SafeArrayAccessData in Windows API.
  9. func safeArrayAccessData(safearray *SafeArray) (uintptr, error) {
  10. return uintptr(0), NewError(E_NOTIMPL)
  11. }
  12. // safeArrayUnaccessData releases raw array.
  13. //
  14. // AKA: SafeArrayUnaccessData in Windows API.
  15. func safeArrayUnaccessData(safearray *SafeArray) error {
  16. return NewError(E_NOTIMPL)
  17. }
  18. // safeArrayAllocData allocates SafeArray.
  19. //
  20. // AKA: SafeArrayAllocData in Windows API.
  21. func safeArrayAllocData(safearray *SafeArray) error {
  22. return NewError(E_NOTIMPL)
  23. }
  24. // safeArrayAllocDescriptor allocates SafeArray.
  25. //
  26. // AKA: SafeArrayAllocDescriptor in Windows API.
  27. func safeArrayAllocDescriptor(dimensions uint32) (*SafeArray, error) {
  28. return nil, NewError(E_NOTIMPL)
  29. }
  30. // safeArrayAllocDescriptorEx allocates SafeArray.
  31. //
  32. // AKA: SafeArrayAllocDescriptorEx in Windows API.
  33. func safeArrayAllocDescriptorEx(variantType VT, dimensions uint32) (*SafeArray, error) {
  34. return nil, NewError(E_NOTIMPL)
  35. }
  36. // safeArrayCopy returns copy of SafeArray.
  37. //
  38. // AKA: SafeArrayCopy in Windows API.
  39. func safeArrayCopy(original *SafeArray) (*SafeArray, error) {
  40. return nil, NewError(E_NOTIMPL)
  41. }
  42. // safeArrayCopyData duplicates SafeArray into another SafeArray object.
  43. //
  44. // AKA: SafeArrayCopyData in Windows API.
  45. func safeArrayCopyData(original, duplicate *SafeArray) error {
  46. return NewError(E_NOTIMPL)
  47. }
  48. // safeArrayCreate creates SafeArray.
  49. //
  50. // AKA: SafeArrayCreate in Windows API.
  51. func safeArrayCreate(variantType VT, dimensions uint32, bounds *SafeArrayBound) (*SafeArray, error) {
  52. return nil, NewError(E_NOTIMPL)
  53. }
  54. // safeArrayCreateEx creates SafeArray.
  55. //
  56. // AKA: SafeArrayCreateEx in Windows API.
  57. func safeArrayCreateEx(variantType VT, dimensions uint32, bounds *SafeArrayBound, extra uintptr) (*SafeArray, error) {
  58. return nil, NewError(E_NOTIMPL)
  59. }
  60. // safeArrayCreateVector creates SafeArray.
  61. //
  62. // AKA: SafeArrayCreateVector in Windows API.
  63. func safeArrayCreateVector(variantType VT, lowerBound int32, length uint32) (*SafeArray, error) {
  64. return nil, NewError(E_NOTIMPL)
  65. }
  66. // safeArrayCreateVectorEx creates SafeArray.
  67. //
  68. // AKA: SafeArrayCreateVectorEx in Windows API.
  69. func safeArrayCreateVectorEx(variantType VT, lowerBound int32, length uint32, extra uintptr) (*SafeArray, error) {
  70. return nil, NewError(E_NOTIMPL)
  71. }
  72. // safeArrayDestroy destroys SafeArray object.
  73. //
  74. // AKA: SafeArrayDestroy in Windows API.
  75. func safeArrayDestroy(safearray *SafeArray) error {
  76. return NewError(E_NOTIMPL)
  77. }
  78. // safeArrayDestroyData destroys SafeArray object.
  79. //
  80. // AKA: SafeArrayDestroyData in Windows API.
  81. func safeArrayDestroyData(safearray *SafeArray) error {
  82. return NewError(E_NOTIMPL)
  83. }
  84. // safeArrayDestroyDescriptor destroys SafeArray object.
  85. //
  86. // AKA: SafeArrayDestroyDescriptor in Windows API.
  87. func safeArrayDestroyDescriptor(safearray *SafeArray) error {
  88. return NewError(E_NOTIMPL)
  89. }
  90. // safeArrayGetDim is the amount of dimensions in the SafeArray.
  91. //
  92. // SafeArrays may have multiple dimensions. Meaning, it could be
  93. // multidimensional array.
  94. //
  95. // AKA: SafeArrayGetDim in Windows API.
  96. func safeArrayGetDim(safearray *SafeArray) (*uint32, error) {
  97. u := uint32(0)
  98. return &u, NewError(E_NOTIMPL)
  99. }
  100. // safeArrayGetElementSize is the element size in bytes.
  101. //
  102. // AKA: SafeArrayGetElemsize in Windows API.
  103. func safeArrayGetElementSize(safearray *SafeArray) (*uint32, error) {
  104. u := uint32(0)
  105. return &u, NewError(E_NOTIMPL)
  106. }
  107. // safeArrayGetElement retrieves element at given index.
  108. func safeArrayGetElement(safearray *SafeArray, index int32, pv unsafe.Pointer) error {
  109. return NewError(E_NOTIMPL)
  110. }
  111. // safeArrayGetElement retrieves element at given index and converts to string.
  112. func safeArrayGetElementString(safearray *SafeArray, index int32) (string, error) {
  113. return "", NewError(E_NOTIMPL)
  114. }
  115. // safeArrayGetIID is the InterfaceID of the elements in the SafeArray.
  116. //
  117. // AKA: SafeArrayGetIID in Windows API.
  118. func safeArrayGetIID(safearray *SafeArray) (*GUID, error) {
  119. return nil, NewError(E_NOTIMPL)
  120. }
  121. // safeArrayGetLBound returns lower bounds of SafeArray.
  122. //
  123. // SafeArrays may have multiple dimensions. Meaning, it could be
  124. // multidimensional array.
  125. //
  126. // AKA: SafeArrayGetLBound in Windows API.
  127. func safeArrayGetLBound(safearray *SafeArray, dimension uint32) (int32, error) {
  128. return int32(0), NewError(E_NOTIMPL)
  129. }
  130. // safeArrayGetUBound returns upper bounds of SafeArray.
  131. //
  132. // SafeArrays may have multiple dimensions. Meaning, it could be
  133. // multidimensional array.
  134. //
  135. // AKA: SafeArrayGetUBound in Windows API.
  136. func safeArrayGetUBound(safearray *SafeArray, dimension uint32) (int32, error) {
  137. return int32(0), NewError(E_NOTIMPL)
  138. }
  139. // safeArrayGetVartype returns data type of SafeArray.
  140. //
  141. // AKA: SafeArrayGetVartype in Windows API.
  142. func safeArrayGetVartype(safearray *SafeArray) (uint16, error) {
  143. return uint16(0), NewError(E_NOTIMPL)
  144. }
  145. // safeArrayLock locks SafeArray for reading to modify SafeArray.
  146. //
  147. // This must be called during some calls to ensure that another process does not
  148. // read or write to the SafeArray during editing.
  149. //
  150. // AKA: SafeArrayLock in Windows API.
  151. func safeArrayLock(safearray *SafeArray) error {
  152. return NewError(E_NOTIMPL)
  153. }
  154. // safeArrayUnlock unlocks SafeArray for reading.
  155. //
  156. // AKA: SafeArrayUnlock in Windows API.
  157. func safeArrayUnlock(safearray *SafeArray) error {
  158. return NewError(E_NOTIMPL)
  159. }
  160. // safeArrayPutElement stores the data element at the specified location in the
  161. // array.
  162. //
  163. // AKA: SafeArrayPutElement in Windows API.
  164. func safeArrayPutElement(safearray *SafeArray, index int64, element uintptr) error {
  165. return NewError(E_NOTIMPL)
  166. }
  167. // safeArrayGetRecordInfo accesses IRecordInfo info for custom types.
  168. //
  169. // AKA: SafeArrayGetRecordInfo in Windows API.
  170. //
  171. // XXX: Must implement IRecordInfo interface for this to return.
  172. func safeArrayGetRecordInfo(safearray *SafeArray) (interface{}, error) {
  173. return nil, NewError(E_NOTIMPL)
  174. }
  175. // safeArraySetRecordInfo mutates IRecordInfo info for custom types.
  176. //
  177. // AKA: SafeArraySetRecordInfo in Windows API.
  178. //
  179. // XXX: Must implement IRecordInfo interface for this to return.
  180. func safeArraySetRecordInfo(safearray *SafeArray, recordInfo interface{}) error {
  181. return NewError(E_NOTIMPL)
  182. }