com 0.0.1 copy "com: ^0.0.1" to clipboard
com: ^0.0.1 copied to clipboard

discontinued
PlatformWindows

Prototype of an idiomatic Dart projection of the COM APIs.

example/main.dart

import 'dart:ffi';

import 'package:com/com.dart';
import 'package:win32/win32.dart' hide IUri;

final _urlmon = DynamicLibrary.open('urlmon.dll');

int CreateUri(Pointer<Utf16> uri, int flags, Pointer<VTablePointer> ppv) =>
    _CreateUri(uri, flags, nullptr, ppv);

final _CreateUri = _urlmon.lookupFunction<
    Int32 Function(Pointer<Utf16>, Uint32, Pointer, Pointer<VTablePointer>),
    int Function(
        Pointer<Utf16>, int, Pointer, Pointer<VTablePointer>)>('CreateUri');

void main() {
  CoInitializeEx(
    nullptr,
    COINIT.COINIT_APARTMENTTHREADED | COINIT.COINIT_DISABLE_OLE1DDE,
  );

  final pUri = 'https://dart.dev/?q=foo'.toNativeUtf16();
  final ppv = calloc<VTablePointer>();
  if (FAILED(CreateUri(pUri, 1, ppv))) {
    print('Failed to create an IUri instance.');
  } else {
    final uri = IUri(ppv.value);
    final domain = uri.getDomain();
    final query = uri.getQuery();
    print('Domain: $domain');
    print('Query: $query');
    uri.release();
  }

  free(pUri);
  free(ppv);
  CoUninitialize();
}
0
likes
130
points
34
downloads

Documentation

API reference

Publisher

verified publisherwin32.pub

Weekly Downloads

Prototype of an idiomatic Dart projection of the COM APIs.

License

BSD-3-Clause (license)

Dependencies

ffi, win32

More

Packages that depend on com