Out parameters are now passed by reference, and thus don't need to be de-referenced to read or assign to them
Optional out parameters need to be de-referenced to read or assign to them.
Optional parameters are passed as pointers, and are initialized to null by default.
Constant out parameters are actually in parameters, and thus shouldn't be having their value retrieved after the function is called.
Constant parameters are now declared as in parameters.
A bit of refactoring, constant input parameters also now have that const casted away before trying to assign their values to the parameter buffer.
Switched a type param to a string.
Regenerated the headers after the last series of commits.