I think 'result' is a bit of a misnomer, maybe 'out' or just 'string'/'str'
Also, the return type and attributes don't need to be on the same line:

```C
WEBVTT_EXPORT webvtt_status
webvtt_create_string_with_text( webvtt_string *string,
                                               const char *withText,
                                               int len );
```