¿Cuál es el propósito de __in __out __in_opt __allowed (), cómo funcionan? ¿Debo usar construcciones similares en mi propio código?

Algunas de estas definiciones de preprocesador se encuentran en la función WinMain y otras funciones de la biblioteca de Windows. ¿Cuál es su propósito? ¿Cómo trabajan? ¿Es una buena práctica escribirlos en sus implementaciones o llamadas a funciones?

Mi investigación inicial sugiere que simplemente están configurados de manera equivalente para:

#define __in 
#define __out
#define __in_opt

Lo que significa que se reemplazan connada en el pase del preprocesador. ¿Son solo un método de documentación, sin ninguna funcionalidad?

Si es así, puedo ver la ventaja de documentar el código en una línea como esta. Con algo como doxygen necesitas escribir los nombres de los parámetros dos veces. Entonces, en teoría, esto podría ayudar a reducir la duplicación y mantener la consistencia ...

No tengo ninguna teoría sobre cómo__allowed() Se supone que funciona.

Respuestas a la pregunta(4)

Su respuesta a la pregunta