Googletest export

Add general explanation of MOCK_METHOD, including list of supported qualifiers.

PiperOrigin-RevId: 262077180
diff --git a/googlemock/docs/cook_book.md b/googlemock/docs/cook_book.md
index 0352ef6..f2b7d30 100644
--- a/googlemock/docs/cook_book.md
+++ b/googlemock/docs/cook_book.md
@@ -12,12 +12,36 @@
 
 ### Creating Mock Classes
 
+Mock classes are defined as normal classes, using the `MOCK_METHOD` macro to
+generate mocked methods. The macro gets 3 or 4 parameters:
+
+```cpp
+class MyMock {
+ public:
+  MOCK_METHOD(ReturnType, MethodName, (Args...));
+  MOCK_METHOD(ReturnType, MethodName, (Args...), (Specs...));
+};
+```
+
+The first 3 parameters are simply the method declaration, split into 3 parts.
+The 4th parameter accepts a closed list of qualifiers, which affect the
+generated method:
+
+*   **`const`** - Makes the mocked method a `const` method. Required if
+    overriding a `const` method.
+*   **`override`** - Marks the method with `override`. Recommended if overriding
+    a `virtual` method.
+*   **`noexcept`** - Marks the method with `noexcept`. Required if overriding a
+    `noexcept` method.
+*   **`Calltype(...)`** - Sets the call type for the method (e.g. to
+    `STDMETHODCALLTYPE`), useful in Windows.
+
 #### Dealing with unprotected commas
 
 Unprotected commas, i.e. commas which are not surrounded by parentheses, prevent
 `MOCK_METHOD` from parsing its arguments correctly:
 
-```cpp
+```cpp {.bad}
 class MockFoo {
  public:
   MOCK_METHOD(std::pair<bool, int>, GetPair, ());  // Won't compile!
@@ -27,7 +51,7 @@
 
 Solution 1 - wrap with parentheses:
 
-```cpp
+```cpp {.good}
 class MockFoo {
  public:
   MOCK_METHOD((std::pair<bool, int>), GetPair, ());
@@ -40,7 +64,7 @@
 
 Solution 2 - define an alias:
 
-```cpp
+```cpp {.good}
 class MockFoo {
  public:
   using BoolAndInt = std::pair<bool, int>;