<commit_before># simply::com

A small C++ library for working with COM. Clean, modern C++; exception-based error reporting; no ATL or macros.

## use 

Add the [simply.com](http://www.nuget.org/packages/simply.assert/) NuGet package to your Visual C++ 
project using the [Package Manager Dialog](http://docs.nuget.org/consume/Package-Manager-Dialog) or 
the [Package Manager Console](http://docs.nuget.org/consume/package-manager-console).
``` PowerShell
Install-Package simply.com
```

Include the library header and use its namespace.
``` C++
#include <simply/com.h>
using namespace simply;
```

Use `com_ptr` to safely manage COM interface pointers and `check` to convert `HRESULT` codes to `com_error` exceptions.
``` C++
try 
{
    com_ptr<IMetaDataDispenserEx> dispenser;
    check(CoCreateInstance(CLSID_CorMetaDataDispenser, 0, CLSCTX_INPROC_SERVER, IID_IMetaDataDispenserEx, dispenser));
}
catch (const com_error& error)
{
    cout << error.what() << error.hresult();
}
```<commit_msg>Fix incorrect nuget package link in README.<commit_after># simply::com

A small C++ library for working with COM. Clean, modern C++; exception-based error reporting; no ATL or macros.

## use 

Add the [simply.com](http://www.nuget.org/packages/simply.com) NuGet package to your Visual C++ 
project using the [Package Manager Dialog](http://docs.nuget.org/consume/Package-Manager-Dialog) or 
the [Package Manager Console](http://docs.nuget.org/consume/package-manager-console).
``` PowerShell
Install-Package simply.com
```

Include the library header and use its namespace.
``` C++
#include <simply/com.h>
using namespace simply;
```

Use `com_ptr` to safely manage COM interface pointers and `check` to convert `HRESULT` codes to `com_error` exceptions.
``` C++
try 
{
    com_ptr<IMetaDataDispenserEx> dispenser;
    check(CoCreateInstance(CLSID_CorMetaDataDispenser, 0, CLSCTX_INPROC_SERVER, IID_IMetaDataDispenserEx, dispenser));
}
catch (const com_error& error)
{
    cout << error.what() << error.hresult();
}
```
{'fraction_non_alphanumeric': 0.1300893743793446, 'fraction_numerical': 0.0009930486593843098, 'mean_word_length': 5.124620060790273, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6551717', 'n_tokens_mistral': 661, 'n_tokens_neox': 642, 'n_words': 188}